Java 对PropertyChangeListener弱引用的PropertyChangeSupport?

Java 对PropertyChangeListener弱引用的PropertyChangeSupport?,java,weak-references,propertychangesupport,propertychangelistener,Java,Weak References,Propertychangesupport,Propertychangelistener,Java似乎没有提供对注册的弱引用的实现 实现这一点并不困难,但在我重新发明轮子之前,有人知道这种特性是否已经在任何开源库中实现过吗?看起来不是这样,但有人可能更了解这一点。会有帮助吗 例如: public class Observer { private Listener listener; private void registerTo(Source source) { listener = new Listener(); source.addChangeL

Java似乎没有提供对注册的弱引用的实现

实现这一点并不困难,但在我重新发明轮子之前,有人知道这种特性是否已经在任何开源库中实现过吗?看起来不是这样,但有人可能更了解这一点。

会有帮助吗

例如:

public class Observer {
  private Listener listener;

  private void registerTo(Source source) {
      listener = new Listener();
      source.addChangeListener(WeakListeners.change (listener, source));
  }

  private class Listener implements ChangeListener {
      public void stateChanged(ChangeEvent e) {
          doSomething();
      }
  }
}

嗨,你的用例是什么?为什么侦听器引用需要是弱的?这可能表明您的侦听器未正确注销。@Paul我可能需要公开此类类,并且无法控制应正确注销这些侦听器的代码。这是一种防御性的方法。不知何故,是的,尽管这个实现看起来不是很干净(Javadoc说“注销是使用反射完成的”)。是的,我想这似乎是由于它的通用性。它可以作为遵循Javabeans约定的几种(任何?)侦听器类型的弱侦听器。