java - 知道自己是谁

标签 java object instanceof

有可能知道在一个实例化了自己的类中吗? 我有一个类 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/

相关文章:

javascript - 函数真的是一个对象吗

java - 对象的设置方法错误

javascript - Nodejs中当前类的实例

具有变化对象的 Java instanceof

java - 在 Spring 中使用 PropertyPlaceholderConfigurer 创建具有不同值的类的多个实例

java - 如何在 Spring 请求映射中接受多个可选参数,但一次只能接受一个?

javascript - 将对象中的数据类型从 int 转换为 string

javascript - 为什么对于某些文字,instanceof 返回 false?

java - 返回 "extended"字符串的长度

java - 缺少 JSON 数据