gpt4 book ai didi

java - 使用反射访问java中子类和父类(super class)的属性

转载 作者:行者123 更新时间:2023-11-30 04:22:45 34 4
gpt4 key购买 nike

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

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

我按如下方式访问成员(member):

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

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

我不知道如何实现这个。有人可以提供一个解决方案或者一个可以查看的地方吗?谢谢你!薇薇安

最佳答案

使用Class#getDeclaredFields()代替。 Java-Doc :

返回反射(reflect)所有字段的 Field 对象数组由 this 表示的类或接口(interface)声明对象。这包括公共(public)、 protected 、默认(包)访问权限和私有(private)字段,但不包括继承的字段。

关于java - 使用反射访问java中子类和父类(super class)的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613687/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com