1. 错误原因
该错误一般出现在对内部类进行实例化时,例如
1 public class A{ 2 public class B{ } 3 }
此时B是A的内部类,如果我们要使用如下语句实例化一个B类的对象:
A.B b = new A.B()
则会报错:B is not an enclosing class
2. 解决办法
方法一:若要创建内部类的实例,首先要创建外部类的实例;
A a = new A(); A.B b = a.new B();
方法二:将内部类的方法都设置为static方法