有可能知道在一个实例化了自己的类中吗? 我有一个类 Listener 可以被很多其他类实例化,所以在 Listener 内部我想知道谁是“父亲”;
我不想用
if(objectA instanceOf Class)
....
但我认为是这样的:
if(this.instanceOf Class1)
System.out.println("Hello i'm the class Listener instanced by Class1);
else if(this.instanceOf Class2)
System.out.println("Hello i'm the class Listener instanced by Class2);
这是可能的还是我是白痴? ;) 谢谢 尼古拉
最佳答案
如果我没理解错的话,您想知道哪些类(以及这些类的实例)包含对您的 Listener 类实例的引用。
一个可能的解决方案是创建一个接口(interface)(例如 ListenerHolder),它定义了所有“监听器持有者”必须拥有的方法,并在监听器的构造函数中接受它的一个实例。
public interface ListenerHolder {
public void doSomething();
}
public class Listener {
public Listener(ListenerHolder holder) {
this.holder = holder;
}
public void doListener() {
this.holder.doSomething();
}
private ListenerHolder holder;
}
话虽如此,也许您可以解释您要解决的真正问题是什么。我怀疑对于您应该考虑的原始问题还有其他可能的解决方案。
关于java - 知道自己是谁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175357/