No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E(e.g. x.new A() where x is an instance of E). E指代我写的那个内部类。
根据提示,没有可访问的内部类E的实例,必须分配一个合适的内部类E的实例(如x.new A(),x必须是E的实例。)
用new实例化了这个类,为什么还不行呢?
写的内部类是动态的,也就是开头以public class开头。主程序是public static class main。
在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.
Java内部类实例化错误解析与解决方案
博客探讨了在Java编程中遇到的NoenclosinginstanceoftypeEisaccessible错误,指出该错误意味着在非静态上下文中尝试实例化一个非静态内部类。解决方案是将内部类声明为静态或者在静态环境中使用其实例。文章还提醒读者注意Java中静态方法不能直接调用非静态成员的规则,并提供了相应的代码修改建议。
https://www.cnblogs.com/wxh04/p/4302947.html
1万+

被折叠的 条评论
为什么被折叠?



