在Clojure中,我可以查找Java类的静态成员(例如,持有常量的字段),如下所示:
ClassName/CONSTANT_FIELD
Run Code Online (Sandbox Code Playgroud)
当我在运行时只知道它的名字时,如何访问该成员?一个例子是循环一系列字段名称并获取所有字段值.
我想做这样的事情(当然这个代码不起作用):
(let [c "CONSTANT_FIELD"]
ClassName/c)
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
djp*_*ell 13
您可以使用Java的反射API.
(let [c "CONSTANT_FIELD"]
(.get (.getField ClassName c) nil))
Run Code Online (Sandbox Code Playgroud)
nil就在那里,因为你得到一个静态字段,而不是特定对象的成员字段.
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |