次のコードがある場合:
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<?>>
ですか?