类java反射如何获取特定属性的名称
我有一个关于java反射的问题
我需要某种方法来获取java类中特定的字段的名称。类似这样的东西:
class X{
int x;
String getNameOfProperty(Object o){
....
}
}
那么,打电话的时候,
System.out.println(getNameOfProperty(x));
我想得到“x”
我已经设法使用
X.class.getDeclaredFields();
但是在属性和与之关联的字段对象之间没有任何链接
# 1 楼答案
我认为可以在java中使用getName()。朗。反思。野战课。在您的问题中,您的代码中有很多字段
在内核中考虑此代码。Test1类。对fieldName的调用将返回'i'和'd'以及42和6。(并非我在这里使用了getDouble,int适合Dboule,因此没有问题。您可能需要检查要尝试的字段的类型,以便首先获得值。)
这就是你想要的吗
# 2 楼答案
现在还不清楚你想问什么
若我正确理解了您的问题,java中的
Field
类允许您在运行时获取该字段的对象值getDeclaredFields
返回您Field[]
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Field.html
检查
get(Object o)
方法# 3 楼答案
为此,可以使用抽象语法树。对于Eclipse,您可以找到详细信息here
您还可以使用以下命令
-ANTLR
-javaparser