2

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

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());
}

当我使用反射来公开“子类”实例中包含的属性时,如何区分“名字”和“姓氏”与“属性 1”和“属性 2”?

我不确定如何实现这一点。有人可以提供解决方案或可以查看的地方吗?谢谢!薇薇安

4

1 回答 1

2

改为使用Class#getDeclaredFields()Java文档

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

于 2013-05-17T16:21:53.890 回答