为什么这段代码不能编译?
public class A {
public class B extends A {
public B(A a) { }
}
void foo() {
A a = new A();
new B(a) { };
}
}
Run Code Online (Sandbox Code Playgroud)
A.java:[7,17] cannot reference this before supertype constructor has been called
如果进行以下任一更改,则编译成功:
B 是私人的而不是公共的new B(A);而不是new B(A) { }使用javac版本:1.6.0_20
java ×1