这个类
public class Main {
public static void main(String[] args) {
Main m = new Main();
m.new A();
m.new B(); //1 - compilation error
new Main.B();
}
class A{}
static class B{} //2
}
将导致第 1 行出现编译时错误:
Illegal enclosing instance specification for type Main.B
但我不明白为什么,我发现它有点违反直觉:在第 2 行我们有一个静态类定义,它也应该可以从对象 m 访问吗?
编辑
如果Main
有一个静态变量i
,m.i
不会导致编译错误。为什么行为与类定义不同?
最佳答案
没有。
静态内部类的全部要点是它没有具有封闭类的实例。
关于java - 实例化静态嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382040/