繁体   English   中英

使用反射访问Java中子类和超类的属性

[英]Accessing properties of subclasses and superclasses in java with reflection

我有许多派生自相同基本类型的类。 基本类型包含子类共有的所有成员。 当实例化子类时,我需要通过反射来访问其成员。 我需要访问每个子类的所有成员,但是我需要将基类中存在的那些成员与子类中存在的那些成员隔离。 例如:

public abstract class mainBaseClass{
    public String firstname;
    public String lastname;
}
public class subClass extends mainBaseClass{
    public String property1;
    public String property2;
}

我正在按以下方式访问成员:

Field[] fields = objectName.getClass().getFields();
for(Field f : fields){
    Log.d("FIELD NAME", f.getName());
}

当我使用反射来暴露“ subClass”实例中包含的属性时,如何区分“ firstname”和“ lastname”与“ property1”和“ property2”?

我不确定如何实现这一点。 有人可以提供解决方案还是一个寻找地方的地方? 谢谢! 维维安

请改用Class#getDeclaredFields() Java文档

返回一个Field对象数组,该数组反映由该Class对象表示的类或接口声明的所有字段。 这包括公共,受保护,默认(程序包)访问和私有字段, 但不包括继承的字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM