Java 2个类,另一个类的构造函数中有一个参数

Java 2个类,另一个类的构造函数中有一个参数,java,Java,假设我有A类和B类。它们的构造函数如下所示: public A(B b) {this.b = b;} public B(A a) {this.a = a;} 它们都有另一个类的实例作为实例变量 是否可以在instancevariable不为null的情况下创建这些类的实例? 我想要一个类A的实例和一个类B的实例。类A的实例应该添加类B的实例作为其实例变量,反之亦然。其中一个类,让我们选择A,将需要一个方法 public void setB(B b) { this.b = b; }

假设我有A类和B类。它们的构造函数如下所示:

 public A(B b) {this.b = b;}

 public B(A a) {this.a = a;}
它们都有另一个类的实例作为实例变量

是否可以在instancevariable不为null的情况下创建这些类的实例?
我想要一个类A的实例和一个类B的实例。类A的实例应该添加类B的实例作为其实例变量,反之亦然。

其中一个类,让我们选择
A
,将需要一个方法

public void setB(B b) {
    this.b = b;
}

可以在实例化
A
B
对象之后调用。

两个类紧密耦合。如果每个类实例都需要另一个进行初始化,则需要从一开始就修改类设计。相反,在这种情况下,使用
setter
将有助于归档一个实例的目标,而归档另一个实例的目标

class A {
    private B b;
    public A(B b) { this.b = b; }
}

class B {
    private A a;
    void setA(A a) { this.a = a; }
}
B b = new B();
A a = new A(b);
b.setA(a);

这不是问题作者想要避免的解决方案吗?