我有两个相互引用的类:
class B{
A obj;
B(A obj){
this.obj=obj;
}
void display(){
System.out.println(obj.data);//using data member of A class
}
}
class A{
int data=10;
A(){
B b =new B(new A()); // THIS LINE GENERATES AN ERROR
b.display();
}
public static void main(String args[]){
A a=new A();
}
}
如果我将违规行改为阅读
B b =new B(this);
然后它工作。我认为这两条线做同样的事情。为什么一个有效而另一个无效?
此外,第一个版本的编译器错误读取
A.<init><A.java:15>
这是什么意思?