如何使用循环引用来实例化类,而不必在Java中使用'NULL'?
假设您有以下在Java中完全合法的类如何使用循环引用来实例化类,而不必在Java中使用'NULL'?,java,cyclic-reference,Java,Cyclic Reference,假设您有以下在Java中完全合法的类 类Ping{ 庞氏值; Ping(Pong值){this.value=value;} } 乒乓球{ 平值; Pong(Ping值){this.value=value;} } 有没有办法在不给构造函数一个NULL值的情况下创建一个Pong或Ping实例?您可以使用这样的方法 class Ping { Pong value; Ping() {this.value = new Pong(this)} Ping(Pong value) {t
类Ping{
庞氏值;
Ping(Pong值){this.value=value;}
}
乒乓球{
平值;
Pong(Ping值){this.value=value;}
}
有没有办法在不给构造函数一个
NULL
值的情况下创建一个Pong或Ping实例?您可以使用这样的方法
class Ping {
Pong value;
Ping() {this.value = new Pong(this)}
Ping(Pong value) {this.value = value}
}
class Pong {
Ping value;
Pong() {this.value = new Ping(this)}
Pong(Ping value) {this.value = value}
}
可悲的是,这似乎是一种糟糕的做法,如下所述:。因此,更好的实现是在创建Ping之后分配Pong
class Ping {
Pong value;
Ping() {}
Ping(Pong value) {this.value = value}
public setPong(Pong pong) {
this.value = pong;
}
}
class Pong {
Ping value;
Pong() {}
Pong(Ping value) {this.value = value}
public setPing(Ping ping) {
this.value = ping;
}
}
Ping ping = new Ping();
Pong pong = new Pong(ping);
ping.setPong(pong);
看到这个答案了吗