【发布时间】:2015-08-27 17:56:59
【问题描述】:
假设简单的 Groovy 类(POGO):
class Person { String name; int age }
如何在运行时获取选择的标识符?换句话说,程序员在源代码中使用的标识符名称(如“name”和“age”) - 不是此标识符的变量中保存的值(如“James”和“32”)。
使用结果解决方案(如果有的话)可以写出这样的东西(语法错误的伪代码):
assert new Person().name.identifierAsString == 'name'
assert new Person().age.identifierAsString == 'age'
请注意,我不是在尝试获取 字段名称列表(如 Person.declaredFields),而是在编译时安全的方式来获取 作为字符串的字段标识符。
【问题讨论】: