有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

我需要为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) 个答案