![](/img/trans.png)
[英]When one mouse listener in a JPanel is called, they are all being called?
[英]When a listener is removed, is it okay that the event be called on that listener one more time?
大多數人使用ConcurrentLinkedQueue或CopyOnWriteArrayList來收集偵聽器,並在發生事件時通知它們。 這樣做的缺點是,監聽者可能會在自己未注冊的情況下獲得通知。 如果管理器(集合,...,給它命名)正在迭代偵聽器的集合並且某些偵聽器在該迭代期間注銷了自己,則會發生這種情況。
因此,“刪除偵聽器”合同被打破。 您認為這是一個問題嗎?
即使您檢查了偵聽器是否仍已注冊,在多線程環境中,您仍不確定在調用它之前仍在注冊它。 即使在非多線程情況下,標准實現也是在副本上工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.