java - 允许使用 Java 中的泛型将子类添加到列表中

标签 java generics

我不明白为什么编译器不允许这样做:

Callable callable = null;
List<Future<BaseClass<? extends AnotherClass>> futures = new ArrayList<Future<BaseClass<? extends AnotherClass>>>();

class BaseClass<T extends AnotherClass> {
   ...
}


class Subclass extends BaseClass<ConcreteType> {
    ...
}

class ConcreteType extends AnotherClass {
    ...
}

futures.add(new FutureTask<Subclass>(callable));

为什么不允许这样做?

最佳答案

我相信你想要:

List<Future<? extends BaseClass<? extends AnotherClass>>> futures

关于java - 允许使用 Java 中的泛型将子类添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8942305/

相关文章:

java - 继承泛型接口(interface)的子类

java - 为什么 DurationFormatUtils 忽略格式中的年份?

java - Spring MVC Portlet 操作映射不起作用

java - 在 servlet 中处理结果集和从 HTML 获取的其他数据的最佳方法

java - 将对象添加到指定索引处的 ArrayList

java - 使用简单 Facebook API 记录时出现异常(没有打开 session 时请求 session )

c# - 通用实现非通用接口(interface)模式有什么缺点吗?

Java通配符通用问题: Compiler assumes different types for same object

java - 如何使用泛型进行 instanceof 和类型转换

c# - 带有泛型的嵌套类