如何从java中获取“主机”对象
我需要获取另一个对象的宿主对象。这里有一个例子 假设我有如何从java中获取“主机”对象,java,Java,我需要获取另一个对象的宿主对象。这里有一个例子 假设我有 class Peer { final Service service; public Peer(Service service) { this.service = service; } public void ping() { service.ping(); } } 及 然后在服务类中,我需要获取对等对象。这可能吗?在创建服务实例时,您需要将对等对象存储在服务对象中
class Peer {
final Service service;
public Peer(Service service) {
this.service = service;
}
public void ping() {
service.ping();
}
}
及
然后在服务类中,我需要获取对等对象。这可能吗?在创建服务实例时,您需要将对等对象存储在服务对象中,这是检索它的唯一方法。
在服务内部创建一个接受对等的构造函数
问题是:
this.getPeer()? //HERE I NEED SOME COMMAND TO GET the Peer object, is this possible?
没有这样的命令。简单地说:java对象不知道它们是在什么上下文中创建的。服务实例了解创建它的对等方的唯一方法:例如,通过传递对该服务对象的引用,例如在其构造函数中传递引用。或者在服务类上有一个setter方法,允许您这样做
当然,这听起来是错误的。服务实例应该真正独立于使用它的对等方!换句话说:如果一个服务知道一个或多个真的有意义吗?!然后服务类需要一个字段来记住这种关系。但至少这里给出的示例表明,您的服务根本不应该知道或关心使用它的同行
class Service {
Peer peer;
public Service(Peer peer){
this.peer = peer;
}
public Peer getPeer() {
return peer;
}
public String hola() {
Peer peer = getPeer();
}
}
this.getPeer()? //HERE I NEED SOME COMMAND TO GET the Peer object, is this possible?