我需要为java中的添加/删除侦听器定义hashcode和equal吗?
添加/删除侦听器在Java中是如何工作的?Java使用列表来添加/删除侦听器,但当我在显示帧时添加一个侦听器,并在隐藏帧时尝试删除它时,它似乎无法正常工作。它依然存在!!!我们应该如何删除侦听器?使用listenerList.remove(instance)
还不够吗?还是我该做点别的?我应该为所有侦听器实例定义hashCode和equal吗。我从未在Java中见过这样的实践
我不清楚在没有hashCode()和equal()的情况下它是如何工作的,以及它是否应该只在我们的add/removeXXXListener(instance)
方法中使用listenerList.add/remove(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) 个答案