使用EventListnerList而不是Vector有什么优势?哪个更优选?
最佳答案
Vector
被伪“弃用”,以支持集合API List
。List
可以无限制地包含您想要的任何内容
尽管可以在List
中支持多个不同的侦听器,但管理起来很复杂,因为每次要查找给定类型的侦听器时都需要遍历列表。您最好使用某种Map
,但是然后,您将复制EventListenerList
的功能...EventListenerList
将允许您管理多种不同类型的EventListener
,但仅限于仅管理实现EventListener
接口的类
Swing组件将作为listenerList
实例的EventListenerList
公开为protected
字段,因此您无需创建自己的
因此,我建议您在以下情况下使用EventListenerListener
:
您正在从基于Swing的组件扩展,因为它更简单并且已经可用...
管理多种不同类型的侦听器
当您的听众实现EventListener
您可能会在以下情况下考虑使用List
:
您只需要处理一种类型的侦听器,
您尚未从基于Swing的组件进行扩展...因为它可以以任何方式提供对EventListenerList
的访问...