假设我有类签名
Class1(Class2 c);
Class2(Class1 c);
如何初始化两者?
最佳答案
对于其中一个类,您不在构造函数中提供引用,但您可以使用 set
方法代替。当它们之前都不存在时,初始化它们彼此依赖似乎很困难。
class Foo {
private Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
}
class Bar {
private Foo foo;
setFoo(Foo foo) {
this.foo = foo;
}
}
Bar bar = new Bar();
Foo foo = new Foo(bar);
bar.setFoo(foo);
另请注意,可能有更好的解决方案。例如使用 Observer-pattern ,这完全取决于您计划如何使用您的对象。
关于java - 在Java中如何初始化相互依赖的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735402/