2010-11-27 26 views
5

Clojure'dan bir Java nesnesinin yöntemini almak için yansımayı kullanmak isterim. Argüman türlerinden biri bir Java ilkelidir ve onlara Clojure'dan nasıl başvuracağımı bilmiyorum. Örneğin, String.valueOf(boolean) almak istediğimi söyleyebilirsiniz. Benim en yakın tahminimClojure'deki ilkel Java türlerine nasıl başvurursunuz?

(.getDeclaredMethod String "valueOf" (into-array [Boolean])) 

yapmak olacaktır ama Boolean ilkel tip kendisi ama kutulu sürümü olduğu için bu başarısız olur. boolean'u denedim, ancak bu yerleşik bir Clojure işlevine başvurur ve bool tanımsızdır.

Clojure'da ilkel Java türüne nasıl başvurabilirim?

cevap

10

İlkel türlerini, kutulu eşdeğerinin TYPE özelliğinden alabilirsiniz. Örneğin:

user=> (.getDeclaredMethod String "valueOf" (into-array [Boolean/TYPE])) 
#<Method public static java.lang.String java.lang.String.valueOf(boolean)> 
İlgili konular