当我有List<Foo>
字段时,由于类型擦除,它在编译时将变成List
。
但是如果我使用
会怎样?class FooList extends List<Foo>
?
我的FooList
是Foo
的列表还是编译时的Object
的列表?
答案 0 :(得分:0)
重要的是要注意以下几点:
extends
,在这种情况下,您应该implements
。public abstract class FooList implements List<Foo>
,因此这是Foo的简单列表。 请注意这种方法,请使用FooList并使用简单的List来查看以下代码:
公共类主要{
public static void main(String[] args) {
//works
List<Foo> foos = new ArrayList<>();
//don't work
FooList fooList = new ArrayList<>();
FooList fooList2 = new ArrayList();
//work, but not necessary
FooList fooList3 = new FooList() {
//implement all method from List interface
};
}
}