1

これに関するドキュメント (またはブログ) が見つかりません。clojure からパッケージで保護されたメソッドを呼び出すことは可能ですか? 私たちは巨大な Java コード ベースを持っており、それらを中心にいくつかの clojure ライブラリの開発を開始できるかどうかを考えていました。

javaでパッケージと同じ名前空間にしてみましたが、メソッド(static)が見つかりませんでした。

4

1 に答える 1

4

簡単なコード例を次に示します。

 (def a (ref 0))
 (def klass (class a))
 (def m (.getDeclaredMethod klass "currentVal" (into-array Class [])))
 (.setAccessible m true)
 (.invoke m a (into-array []))

おそらく、reflect APIを確認する必要があります。

ただし、古い Java コード ベースの公に宣言されたフィールドとメソッドのみを使用することをお勧めします。

于 2014-06-03T01:18:53.863 に答える