你是想通过反射获得该类所有属性值或是给所有属性赋值吧。用getMethods获取所有的getter和setter方法,再取值或赋值。但不要用getDeclaredMethods,因为getMethods反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法;而getDeclaredMethods反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
这也许是框架注入属性值都采用setter注入的原因吧。
反射可以获取到属性类型,Field类里面有个方法,getType()就是获取属性类型的。。。
下面是个示例代码。。。
public
static
void
main(String
args[])
{
People
peo
=
new
People();
Class
cla
=
Peopleclass;
try
{
Field[]
fields
=
clagetFields();
for(Field
field:fields){
Class
c
=
fieldgetType();
if(c==Stringclass){
fieldset(peo,
"EMPTY");
}else
if(c==Integerclass){
fieldset(peo,
0);
}
}
}
catch
(SecurityException
e)
{
//
TODO
Auto-generated
catch
block
eprintStackTrace();
}catch
(IllegalArgumentException
e)
{
//
TODO
Auto-generated
catch
block
eprintStackTrace();
}
catch
(IllegalAccessException
e)
{
//
TODO
Auto-generated
catch
block
eprintStackTrace();
}
}
主要就是用Class
c
=
fieldgetType();
这个来获取类型。。。。
以上就是关于通过反射,如何获得子类继承自父类的属性全部的内容,包括:通过反射,如何获得子类继承自父类的属性、ios反射怎么获取对应类的属性、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)