SORU
28 NİSAN 2011, PERŞEMBE


Nasıl Clojure Java sınıfının yöntemlerini alabilir miyim?

Nasıl Clojure Java sınıfının yöntemlerini alabilir miyim?

CEVAP
28 NİSAN 2011, PERŞEMBE


2 [DEĞİŞTİR]

M Smith'in aşağıdaki yorum başına, bu aynı başarır ama yöntem adı ve döner yöntemleri: sıralama sağlar

(print-table
  (sort-by :name 
    (filter :exception-types (:members (r/reflect "foo")))))

[/2 değiştir]

[DÜZENLE]

Benim orijinal cevap 1.2, ama işler Clojure 1.3 değişti Clojure ifade eder. Bu Clojure. contrib kütüphaneler: herhangi bir güven olmadan çalışır

(require '[clojure.reflect :as r])
(use '[clojure.pprint :only [print-table]])

(print-table (:members (r/reflect "foo")))

Bu sağlar çok daha ayrılmış yaklaşım ile reflect fonksiyon sağlayan her türlü bilgiyi geçirilen bağımsız değişken (bu durumda, bir String "foo"ve print-table fonksiyon alarak herhangi bir genel tablo veri yapısı ve oldukça baskı gibi.

Bu this thread on the Google Group aslen.

[/DÜZENLE]

Tüm statik ve örnek bir nesnenin üyeleri (veya bir nesne sınıfı) yazdıracak clojure.contrib.repl-utils ad show Bu fonksiyonu kullanmak istiyorum. Yani sanki ihtiyacım var:

(require '[clojure.contrib.repl-utils :as ru])

İşte size bir örnek Joda Zaman kullanarak:

(import 'org.joda.time.DateTime)
(ru/show DateTime)
(ru/show (DateTime.))

İlk örnek sadece ikinci sınıf bir örneği olarak iletebilirsiniz gösteriyor ise show bir dersten gösterir.

Tabii ki bu Java sınıfları altında olan Clojure çok sayıda öğe için çalışıyor. İşte tüm yöntemleri java örneğini görmek için kullanılabilir bir örnek.lang.Dize:

(ru/show "foo")

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • natescamp

    natescamp

    30 NİSAN 2009