如果我有以下代碼:從Java的泛型類中的嵌套泛型中分配一個變量?
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()
分配給Set<List<?>>
?
我認爲你的問題已經在這裏找到答案: http://stackoverflow.com/questions/13056421/mixing-nested-type-parameters-and-wildcards-in-java – 2014-11-22 08:03:34