Проблема с вашим подходом заключается в том, что при создании экземпляра A
это экземпляр должен создать экземпляр B
, который также должен создать экземпляр A
, который создает экземпляр B
... и так далее, пока стек не переполнится.
Вероятно, наиболее интуитивный способ бы решить эту проблему с помощью геттеров/сеттеры, как
class A{
private B b;
public void setB(B b) { this.b = b; }
public B getB() { return b; }
}
class B{
private A a;
public void setA(A a) { this.a = a; }
public A getA() { return a; }
}
class Demo {
public static void main(final String[] args) throws Exception {
A a = new A();
B b = new B();
//let them see each other
a.setB(b);
b.setA(a);
}
}
Java должен Javascript, как автомобиль на ковер. – SLaks
Какая часть ошибки вы не понимаете? Как вы думаете, что делает ваш код? – SLaks
'A' создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A 'который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый' B' который создает новый 'A', который создает новый' B', который создает новый 'A', который создает новый ... –