如何在不使用魔术字符串的情况下获取方法名称

时间:2011-08-03 18:28:13

标签: java

在java中有任何库可以获取字段名称而不使用任何魔术字符串,例如,用于下面的类

class User
{
int id;

int getId()
{
return id;
}

void setId(int id)
{
this.id = id;
}
}

现在我想要的是这样的,

String fieldName = Utility.getFieldName(User.getId());

这应该返回文本“id”

我知道这是通过常规手段无法实现的,但我在想是否可以通过使用动态代理包装User类来实现(所以这更像是

String fieldName = Utility.getFieldName(Utility.createProxy<User>().getId());

)并拦截方法调用并从堆栈中获取方法名称,并在查看Utility类时使用一些线程连接看起来像一个简单的方法调用。有谁知道是否有任何库可以进行这种类型的操作?

1 个答案:

答案 0 :(得分:2)

可以使用reflection完成此操作。