How to load nested classes in Java?

别来无恙 提交于 2019-11-30 08:42:14
MeBigFatGuy

Use Outer$Nested (regardless if nested class is static or not)

public class CheckInnerStatic {

    private static class Test {
    static {
        System.out.println("Static block initialized");
    }
    public Test () {
        System.out.println("Constructor called");
    }
}

    public static void main (String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        System.out.println("Inside main");
        Class<?> cls = Class.forName("CheckInnerStatic$Test");
        //Test test = new Test();
    }
}

You need to use the fully qualified class name, i.e. yourpackage.CheckInnerStatic$Test (assuming you defined a package, otherwise skip that part).

Class innerClass = Class.forName("com.foo.OuterClass$InnerClass");
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!