6

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

たとえば、取得したいとしますString.valueOf(boolean)。私の最も近い推測はすることです

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

Booleanただし、これはプリミティブ型自体ではなく、ボックス化されたバージョンであるため失敗します。試しましたがboolean、これは組み込みのClojure関数を参照しており、bool未定義です。

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

4

2 に答える 2

12

TYPEボックス化された同等のプロパティを介してプリミティブ型を参照できます。例えば:

user=> (.getDeclaredMethod String "valueOf" (into-array [Boolean/TYPE]))
#<Method public static java.lang.String java.lang.String.valueOf(boolean)>
于 2010-11-27T23:10:55.927 に答える