允许使用Java中的Generics将子类添加到列表中

时间:2012-01-20 13:42:50

标签: 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));

为什么不允许这样做?

1 个答案:

答案 0 :(得分:2)

我相信你想要:

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