如果我有以下代码:
public class DummyClass<T> {
public List<T> getList() {
return new ArrayList<T>();
}
public Set<List<T>> getListSet() {
return new HashSet<List<T>>();
}
}
我有一个DummyClass<?> dummy
,
我可以
List<?> list = dummy.getList();
没有任何错误。
然而,
Set<List<?>> listSet = dummy.getListSet();
给出编译错误:
Type mismatch: cannot convert from Set<List<capture#1-of ?>> to Set<List<?>>
为线分配dummy.getListSet()
。
为什么我不能分配dummy.getListSet()
给 a Set<List<?>>
?