Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
2015-09-08 01:30
633 查看
本文转载自: Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
最近在看Java,在编译写书上一个例子时,由于书上的代码只有一部分,于是就自己补了一个内部类。结果编译时出现: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,在编译写书上一个例子时,由于书上的代码只有一部分,于是就自己补了一个内部类。结果编译时出现: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中重载与重写的区别
- [Java Concurrency in Practice]第十三章 显式锁
- Struts2返回JSON总结
- SpringMVC的@ModelAttribute和@RequestParam、@PathVariable、@CookieValue、@SessionAttributes
- Java I/O学习(一)
- super() 和this()为什么要放在构造函数的第一个语句
- 开始学习ACM,刷杭电OJ
- java实现最基础的中国5角星
- Spring MVC 前端ajax传入多个参数(包含数组)后端controller的一次性接收
- spring 配置 c3po
- IDEA基本配置jdk
- Spring AOP术语
- Spring MVC 获取静态资源处理方案学习总结
- Maven下SpringMVC整合UEditor
- 如何在Ubuntu中安装JDK
- Android:Plug-in com.android.ide.eclipse.adt was unable to load class android
- 如何在MyEclipse上耍Chrome
- java操作cookie注意事项
- spring 配置 c3po