interface Receiver {
public <T extends HasId> void doSomethingWithList(List<T> list);
}
也
class SubClass implements HasId {}
但
List<SubClass> list = getList();
receiver.doSomethingWithList(list);
无法编译,抱怨doSomethingWithList
不适用于参数List<SubClass>
我的错误在哪里?
答案 0 :(得分:3)
对我来说很好看。可能是你在其中一个声明中使用了错误的List类(即不是java.util.class而是java.awt.List)。也许在界面中。你能仔细检查一下进口报表吗?我过去自己犯过这个错误,这个案子是有效的: - )
答案 1 :(得分:3)
代码编译没有任何问题。
答案 2 :(得分:0)
与无可争议的一样,我的代码快速实现编译并运行得很好。也许this可以给你一些线索;也许这个问题更多地与你对Java支持泛型多态的实现有关。
您似乎使用的是界面而不是类继承,但您的问题标题是List<T extends SuperClass>
...