在Moritz Haarmann的博客中,我发现了一个example of usage of Bonjour by Java。这里是从那里取的代码:对象是否可以知道从哪个对象调用其方法?
public class ServiceAnnouncer implements IServiceAnnouncer, RegisterListener {
private DNSSDRegistration serviceRecord;
private boolean registered;
public boolean isRegistered(){
return registered;
}
public void registerService() {
try {
serviceRecord = DNSSD.register(0,0,null,"_killerapp._tcp", null,null,1234,null,this);
} catch (DNSSDException e) {
// error handling here
}
}
public void unregisterService(){
serviceRecord.stop();
registered = false;
}
public void serviceRegistered(DNSSDRegistration registration, int flags,String serviceName, String regType, String domain){
registered = true;
}
public void operationFailed(DNSSDService registration, int error){
// do error handling here if you want to.
}
}
我有一个关于“serviceRegistered”方法的问题。据我了解,它是在服务注册期间(或之后)调用的(并且它将变量“registered”设置为等于“true”)。但是我不清楚的是它究竟是如何被调用的。因为服务是通过“registerService”方法注册的。这种方法又称为“DNSSD.register”。而且,据我所知,“DNSSD.register”将调用“ServiceAnnouncer”类的“serviceRegister”方法。但是,“DNSSD.register”如何知道它需要调用“ServiceAnnouncer”类的方法? “DNSSD.register”能否知道它是从一个特定的类中调用的(在本例中是“ServiceAnnouncer”类)?
无关,但您的方式想要删除接口前面的“I”,以便遵循Java编码标准(并为了您的Java程序员的可读性)。 – 2010-03-06 20:07:48
没错,但是我在编写代码的时候并没有完全意识到java编码标准.. :-) – moritz 2012-01-14 14:22:57