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

  • ehowhome

    ehowhome

    22 NİSAN 2009
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • incognitotraveler

    incognitotra

    27 Mayıs 2010