如何模拟从一个Java对象到另一个Java对象的直接引用?

时间:2014-12-10 17:55:03

标签: java reference garbage-collection weak-references

假设我有2个Java类,A和B看起来像这样:

public static class A {
}

public static class B {
    private A parent;

    public B(A parent) {
        this.parent = parent;
    }
}

现在,我有一个A类实例(称之为' xa')和B类实例(' yb')。我想要一个通用的方法来防止' yb'从垃圾收集到' xa'有资格获得GC。假设我无法修改任何一个类的代码。基本上,我希望实现完全相同的行为,如果' xa'直接参考了' yb' (通过一个领域)。

我已经探索过尝试使用PhantomReferences + ReferenceQueues,但我似乎总是遇到一个死胡同,直接引用了' xa'最终阻止两个对象成为GC' d ...

仅供参考,我的实际用例是一个弱侦听器,只需要与另一个对象一起存在。

0 个答案:

没有答案