Java /泛型:返回扩展类型的列表?

时间:2019-05-08 13:40:49

标签: java generics inheritance compiler-errors

如果我具有以下条件:

class A {}
class B extends A {}

public <T extends A> List<T> getList() {
   List<T> list = new ArrayList<>();
   list.add(new A());
   return list;
}

但是我得到了错误:add(T) in List cannot be applied to A

我想做的是返回A类或扩展A类的任何类的列表。为什么它在这里不起作用?

1 个答案:

答案 0 :(得分:1)

您不能将A的实例添加到扩展A的类型列表中,例如List<B>,因为A不是{{1 }}(反之亦然)。