错误
问题
No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
没有能被访问到的 外部类E的实例。必须获取一个外部类E的对象(例如: x.new A(), x是E的实例 )
原因:
原来我写的内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。
解法:
在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.
new 外部类().new 内部类();也可以。
并不一定需要将内部类修改为static的。 内部类可以这样2种方法实例 EqualsObject.Transport transport = new EqualsObject.Transport(); EqualsObject.Transport transport = new EqualsObject().new Transport(); 而在外部main方法中必须这样调用 EqualsObject.Transport obj1 = new EqualsObject().new Transport(); main里面的必须要new2个原因就是博主描述的原因。