最近在看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的实例(如x.new A(),x必须是E的实例。)可是我明明实例化了这个类,为什么还不行呢。 于是百度谷歌了一下相关资料。原来我写的内部类是动态的,这一点很重要,因为在main函数中,如果是不能直接调用动态内部类,必须先将这个内部类实例化,而这个内部类的实例化途径,是必须先实例化其包裹类,如果想不通过这种方法调用,最直接的办法就是将内部类的修饰符由public class改为public static class。 在这里记下这个问题,同时方便遇到同样问题的朋友查阅。
不知道这样理解对不对?大家说说看看!
|