如何获取java类的层次结构字段的字段?

时间:2015-12-03 06:59:20

标签: java field class-hierarchy

我的java项目中有一个名为abstract的{​​{1}}类。我从ClassA延伸ClassB。现在我想得到ClassA的所有字段。当我使用ClassB时,此方法仅获得ClassB.getDelaredFields()个字段。我可以使用classB但是当我有几个等级的clasess时,我无法使用它。我希望得到所有的领域。怎么样?

2 个答案:

答案 0 :(得分:0)

您可以使用getFields(),例如:

public class Generic {
    public class SuperA {
        public int f0;
    }

    public class A extends SuperA{
        public int f;
    }

    public class B extends A {

    }

    public static void main(String[] args) {
        Field[] fields = B.class.getFields();

        for(Field f: fields) {
            System.out.println(f.getName());
        }
    }
}

答案 1 :(得分:0)

公共变量(来自类和继承):

Field[] fields = yourclass.getFields();

每个变量都是非继承的,公共的和私有的:

Field[] fields2 = yourclass.getDeclaredFields();

获取继承的,受保护的(你可以用它们做什么?),遍历超类

yourclass.getSuperclass()