我有许多派生自相同基类型的类。基类型包含子类共有的所有成员。当实例化子类时,我需要通过反射访问其成员。我需要访问每个子类的所有成员,但我需要将基类中存在的成员与子类中存在的成员隔离开来。例如:
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”实例中包含的属性时,如何区分'first1'和'lastname'与'property1'和'property2'?
我不确定如何实现这一点。有人可以提供解决方案或者可以寻找一个地方吗?谢谢!维维
答案 0 :(得分:2)
请改用Class#getDeclaredFields()
。 Java-Doc:
返回反映所有字段的Field
个对象数组
由此类表示的类或接口声明
Class
对象。这包括公共,受保护,默认
(包)访问权限和私有字段但不包括继承的字段。