我是否需要在java中定义哈希码并等于添加/删除侦听器?

时间:2013-12-04 12:22:20

标签: java list listener equals hashcode

如何添加/删除侦听器在Java中工作? Java使用列表来添加/删除侦听器,但是当我在显示帧时添加侦听器并且在隐藏帧时尝试删除它时,它似乎不能正常工作。它仍然是!!!我们应该如何删除听众?使用listenerList.remove(instance)是不够的?或者我应该做点什么?我是否应该为所有侦听器实例定义hashCode并且相等。我从未在Java中看到过这样的做法。

我不清楚如果没有hashCode()和equal(),它是如何工作的,如果它只能在我们的listenerList.add/remove(instance)方法中使用add/removeXXXListener(instance)

我添加/删除侦听器的代码如下:

List<ITackleMovementListener> tackleMovementListeners = new ArrayList<>();
public void addTackleMovementListener(ITackleMovementListener tml){
    this.tackleMovementListeners.add(tml);
}

public void removeTackleMovementListener(ITackleMovementListener tml){
    this.tackleMovementListeners.remove(tml);
}

我使用JFrame的addComponentListener来添加和删除侦听器,但是在关闭JFrame之后侦听器仍然存在

0 个答案:

没有答案