如何获取java类中声明的字段的原始类
现在,假设我有类名:如何获取java类中声明的字段的原始类,java,reflection,field,Java,Reflection,Field,现在,假设我有类名: class Name { String firstName, lastName; // getters and setters, etc. } and then Name class's object is declared somewhere in other class : class Other { Name name; // getter and setters, etc. } 现在如果我这样做: Other o = new Other();
class Name {
String firstName, lastName;
// getters and setters, etc.
}
and then Name class's object is declared somewhere in other class :
class Other {
Name name;
// getter and setters, etc.
}
现在如果我这样做:
Other o = new Other();
Field[] fields = o.getClass().getDeclaredFields();
fields[0] --> is 'name' the Object of 'Name' class
但是当我说字段[0].getClass()
:
它给我java.lang.reflect.Field
类对象,而不是名称类对象
如何从像'name'这样的字段中获取原始的类对象基本上,您需要向字段询问特定实例的值,例如
Name name = (Name)fields[0].get(o);
现在。像这样进行盲投是相当危险的,我可能只是先将其分配给对象
,然后执行实例
,或者使用字段#getName
来确定字段的名称并从中采取行动
注意-我想提到
getType
,但是Evgeniy Dorofev抢先一步,我不想从他的答案中抹去基本上,你需要向字段询问特定实例的值,比如
Name name = (Name)fields[0].get(o);
现在。像这样进行盲投是相当危险的,我可能只是先将其分配给对象
,然后执行实例
,或者使用字段#getName
来确定字段的名称并从中采取行动
注意-我要提到
getType
,但是Evgeniy Dorofev击败了我,我不想从他的答案中抹去它。getType方法返回一个类对象,该类对象标识此字段对象表示的字段的声明类型。字段。getType方法返回一个类对象,该类对象标识此字段表示的字段的声明类型这个字段是一个对象
fields[i].getType()
field[0].getClass()
请查收
getType()返回一个类型对象,该对象表示此字段对象表示的字段的声明类型
fields[i].getType()
field[0].getClass()
将返回表示字段[0]的类型对象,该字段显然是字段[0]
请查收
getType()返回一个类型对象,该对象表示此字段对象表示的字段的声明类型
fields[i].getType()
field[0].getClass()
将返回表示字段[0]的类型对象,该字段显然是字段[0]。根据Evgeniy的回答,这一行是您要查找的:
String actualClassName = fields[0].getType().getName();
根据叶甫盖尼的回答,这一行是您要寻找的:
String actualClassName = fields[0].getType().getName();
这应该会有帮助
其他o=新的其他();
Class classTemp1=o.getClass();
Field[]allFields=classTemp1.getDeclaredFields();
现在,您可以查询每个字段的名称、类型等,这应该会有所帮助
其他o=新的其他();
Class classTemp1=o.getClass();
Field[]allFields=classTemp1.getDeclaredFields();
现在,您可以查询每个字段的名称、类型等