Java/泛型 : Return a list of extending a type?

标签 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 类的类的列表。为什么它在这里不起作用?

最佳答案

您无法添加 A 的实例到扩展 A 的类型列表,如List<B> ,自 A不是B (反之亦然)。

关于Java/泛型 : Return a list of extending a type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042184/

相关文章:

.net - LINQ : Generics with IQueryable

objective-c - 继承 objective-c

c++ - 在类公共(public)方法中创建一个新结构

java - 展平通用 Java 树

java - 使用 exoplayer 在 android 9 和 10 上播放流时出错

java - Spring/JAVA连续进程同步

java - 通用符号 <?> 和 < ?扩展对象 > 表现不同

java - 使用最少 "XOR"操作重新创建二进制矩阵

涉及 boolean 值的 Java 8 类型推断

javascript - Backbone Marionette : put methods on instance/constructor or prototype when extending objects