通过反射,如何获得子类继承自父类的属性

通过反射,如何获得子类继承自父类的属性,第1张

你是想通过反射获得该类所有属性值或是给所有属性赋值吧。用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反射怎么获取对应类的属性、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9509914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存