今天在写一个程序的时候在一个類中写了内部类在main()中进行了实现,
但是在编译的时候进行了报错自己也不知道错在哪里就出现了这样的英文。
后来发现是这样的原因:
在实例化一个类的时候只能对在类中的进行实例化
//具体这里为什么要改成static class。是因为这样的话就成了静态内部类
再找资料的同事还发現一种情况。
根据提示没有可访问的内部类E的实例,必须分配一个合适的内部类E的实例(如x.new A()x必须是E的实例。)看着这句提示我就纳悶了,我已经用new实例化了这个类为什么还不行呢。
于是百度谷歌了一下相关资料原来我写的内部类是动态的,也就是开头以public class开头而主程序是public static class main。在Java中类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类然后才能够在静态类中调用该类的成员变量與成员方法。所以在不做其他变动的情况下最简单的解决办法是将public class改为public static class。