使用EventListnerList而不是Vector有什么优势?哪个更优选?

最佳答案

Vector被伪“弃用”,以支持集合API List
List可以无限制地包含您想要的任何内容
尽管可以在List中支持多个不同的侦听器,但管理起来很复杂,因为每次要查找给定类型的侦听器时都需要遍历列表。您最好使用某种Map,但是然后,您将复制EventListenerList的功能...
EventListenerList将允许您管理多种不同类型的EventListener,但仅限于仅管理实现EventListener接口的类
Swing组件将作为listenerList实例的EventListenerList公开为protected字段,因此您无需创建自己的


因此,我建议您在以下情况下使用EventListenerListener


您正在从基于Swing的组件扩展,因为它更简单并且已经可用...
管理多种不同类型的侦听器
当您的听众实现EventListener


您可能会在以下情况下考虑使用List


您只需要处理一种类型的侦听器,
您尚未从基于Swing的组件进行扩展...因为它可以以任何方式提供对EventListenerList的访问...

09-15 18:31