私はclojureとjavaの初心者です。あなたが行うことができますClojureの中のJavaフィールドにアクセスするためにClojureでJavaフィールドに動的にアクセスしますか?
:
Classname/staticField
(. Classname staticField)
としてちょうど同じである(私が間違っているなら、私を修正)
変数の中に保持されているフィールドの名前が静的フィールドにアクセスするにはどうしたらいいですか?すなわち:
(let [key-stroke 'VK_L
key-event KeyEvent/key-stroke])
私はそれがフィールドにアクセスしようとする前key-stroke
がシンボルVK_Lに評価されたいです。あなたは、次のような何かをしたい場合があります。この場合
https://github.com/joodie/clj-java-fieldsを参照してください、あなたはJavaのリフレクションAPIを見ることができます。 http://java.sun.com/developer/technicalArticles/ALT/Reflection/のフィールドの値の変更を参照してください。 – gatoatigrado
もう少し詳しく解説:フィールドまたはメソッド呼び出しのアクセスは、バイトコードでコンパイルする必要があります。そのため、ランタイム情報でそれらを構築することはできません。それが必要な場合は、リフレクションを使用する必要があります。 (Joostの答えを参照) – kotarak