List vs ArrayList

Can*_*ner 1 java generics

List<EventHandler<E>> listeners = new List<EventHandler<E>>();
Run Code Online (Sandbox Code Playgroud)

为什么上面的行失败了:

无法实例化该类型 List<EventHandler<E>>

但是这个有效:

ArrayList<EventHandler<E>> listeners = new ArrayList<EventHandler<E>>();
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 28

正确的方法是:

List<EventHandler<E>> listeners = new ArrayList<EventHandler<E>>();
Run Code Online (Sandbox Code Playgroud)
  • 通过接口(List)引用一个对象
  • 使用具体类型(ArrayList)实例化对象(接口无法实例化)


smp*_*p7d 15

List 是一个接口,你无法实例化一个接口.


Mar*_*erg 6

List是一个接口,您无法创建接口的实例

尝试

List<EventHandler<E>> listeners = new ArrayList<EventHandler<E>>();
Run Code Online (Sandbox Code Playgroud)