Java 如何在Clojure中动态查找静态类成员?

Java 如何在Clojure中动态查找静态类成员?,java,clojure,Java,Clojure,在Clojure中,我可以查找Java类的静态成员(例如,包含常量的字段),如下所示: ClassName/CONSTANT_FIELD 当我在运行时只知道该成员的名称时,如何访问该成员?例如,在一系列字段名上循环并获取所有字段值 我想这样做(当然,这段代码不起作用): 最好的方法是什么?您可以使用Java的反射API (let [c "CONSTANT_FIELD"] (.get (.getField ClassName c) nil)) 之所以存在nil,是因为您得到的是静态字段,而

在Clojure中,我可以查找Java类的静态成员(例如,包含常量的字段),如下所示:

ClassName/CONSTANT_FIELD
当我在运行时只知道该成员的名称时,如何访问该成员?例如,在一系列字段名上循环并获取所有字段值

我想这样做(当然,这段代码不起作用):


最好的方法是什么?

您可以使用Java的反射API

(let [c "CONSTANT_FIELD"]
  (.get (.getField ClassName c) nil))
之所以存在nil,是因为您得到的是静态字段,而不是特定对象的成员字段

(let [c "CONSTANT_FIELD"]
  (.get (.getField ClassName c) nil))