如何通过Java Reflection从父类的类中获取嵌套类

时间:2019-07-18 13:04:39

标签: java class reflection inner-classes

是否可以通过Java反射从父类访问嵌套的类字段?我花了很多时间阅读文档,但并没有什么真正帮助我的。有人吗?

2 个答案:

答案 0 :(得分:0)

您可以创建嵌套类的对象,例如:

A.B obj = new A.B();

但是您的嵌套类应该是静态的。

答案 1 :(得分:0)

您可以获得类Class的实例,该实例表示嵌套类,就像您对顶级类所做的一样,除了必须包含外部类的名称作为限定符之外。例如,使用类文字:

public class Outer {

    public static void main(String[] args) {
        Class<Outer.Inner> classInner = Outer.Inner.class;
        Field[] classInnerFields = classInner.getDeclaredFields();
        for( Field field : classInnerFields ) {
            System.out.println(field.getName());
        }
    }

    static class Inner {
        private int innerField = 0;
        private String innerField2 = "two";
    }
}

请注意,如果Inner不是静态的,则字段列表将包括对外部实例的引用。