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

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

你是想通过反射获得该类所有属性值或是给所有属性赋值吧。用getMethods获取所有的getter和setter方法,再取值或赋值。但不要用getDeclaredMethods,因为getMethods反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法;而getDeclaredMethods反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。

这也许是框架注入属性值都采用setter注入的原因吧。

            Class<> cls=ClassforName(className);//通过类的名称反射类

            Object obj=clsnewInstance();//对象实例化

            Field field=clsgetField(fieldName);//这个对应的是属性

            fieldValue=fieldget(obj);//这个就是属性的值

class

Program

{

static

void

Main(string[]

args)

{

string

path

=

@"D:\OpenSSL";

//

ConsoleWriteLine(isDir(path));

//ConsoleRead();

Man

man

=

new

Man();

Type

type

=

manGetType();

PropertyInfo[]

infos

=

typeGetProperties();

foreach

(PropertyInfo

info

in

infos)

{

ConsoleWriteLine(infoDeclaringTypeFullName

+

"

,

"

+

infoName);

}

ConsoleRead();

}

}

public

class

Person

{

public

string

name

{

get;

set;

}

public

string

password

{

get;

set;

}

}

public

class

Man

:

Person

{

public

string

height

{

get;

set;

}

public

string

weight

{

get;

set;

}

}

比较笨的办法。

肯定有更优解决方案。

以上就是关于通过反射,如何获得子类继承自父类的属性全部的内容,包括:通过反射,如何获得子类继承自父类的属性、java怎么通过反射得到属性的类型、C# 反射获取属性的时候如何只获取该类的属性,我不想取得父类的属性。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9625525.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存