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

8

在Clojure中,我可以这样查找Java类的静态成员(例如保存常量的字段):

ClassName/CONSTANT_FIELD

我如何在运行时只知道成员名称时访问该成员?一个例子是循环遍历字段名序列并获取所有字段值。
我想做这样的事情(当然,这段代码不起作用):
(let [c "CONSTANT_FIELD"]
  ClassName/c)

什么是最好的方法来做到这一点?
1个回答

13

你可以使用Java的反射API。

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

nil是因为你获取的是静态字段,而不是特定对象的成员字段。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接