2010-11-27 11 views
5

ClojureからJavaオブジェクトのメソッドを取得するためにリフレクションを使用したいと思います。引数型の1つはJavaプリミティブであり、Clojureからそれらを参照する方法はわかりません。ClojureでプリミティブなJava型をどのように参照していますか?

たとえば、String.valueOf(boolean)を取得したいとします。私の最寄りの推測では、

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

を行うことであろうが、Booleanがプリミティブ型そのものではなく、パッケージ版ではありませんので、これは失敗します。私はbooleanを試しましたが、これは組み込みのClojure関数を指し、boolは未定義です。

ClojureでプリミティブなJavaタイプを参照するにはどうすればよいですか?

答えて

10

ボックス型の同等のプロパティーTYPEでプリミティブ型を参照できます。例:

user=> (.getDeclaredMethod String "valueOf" (into-array [Boolean/TYPE])) 
#<Method public static java.lang.String java.lang.String.valueOf(boolean)> 
関連する問題