当我们在创建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 {
}
}
网友评论