"xxx" is not an enclosing class 解决办法

当我们在创建java内部类的实例时候,可能会遇到这种编译错误:"xxx" is not an enclosing class

类的结构代码:

public class OuterClass {
    public class InnerClass {

    }
}

实例化内部类:

  OuterClass.InnerClass innerClass = new OuterClass.InnerClass();

这个时候就会出现编译错误:"xxx.OuterClass" is not an enclosing class

解决办法:若要创建内部类的实例,需要有外部类的实例才行,或者是将内部类设置为静态的。
方法一:

    OuterClass.InnerClass innerClass = new OuterClass().new InnerClass();
    /*OuterClass outerClass = new OuterClass();
    OuterClass.InnerClass innerClass = outerClass.new InnerClass();*/

方法二:将内部类设置为静态的

public class OuterClass {
    static public class InnerClass {

    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容