【问题标题】:PropertyChangeSupport with weak references to PropertyChangeListener?PropertyChangeSupport 对 PropertyChangeListener 的弱引用?
【发布时间】:2011-11-11 04:17:30
【问题描述】:

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

实现这一点并不难,但在我重新发明轮子之前,有没有人知道这个功能是否已经在任何开源库中实现了?似乎不是这样,但有人可能更了解 SO。

【问题讨论】:

  • 嗨,你的用例是什么?为什么监听器引用需要弱?这可能表明您的听众没有正确注销自己。
  • @Paul 我可能需要公开此类类,并且无法控制应该正确注销这些侦听器的代码。这是一种防御方法。

标签: java weak-references propertychangesupport propertychangelistener


【解决方案1】:

this Netbeans WeakListeners page 会帮忙吗?

例子:

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();
      }
  }
}

【讨论】:

  • 不知何故是的,虽然这个实现看起来不是很干净(Javadoc 说'取消注册是使用反射完成的')。
  • 是的,我猜这似乎是其通用性的结果。它可以充当几个(任何?)遵循 Javabeans 约定的侦听器类型的弱侦听器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多