图片来自http://docs.oracle.com/javase/tutorial/java/generics/subtyping.htmlList<? super Number>
如何成为List<? super Integer>
的子类型?
最佳答案
这是因为List<? super Integer>
可捕获转换为可从List<? super Number>
捕获转换的所有列表。
让我们看看从List<? super Number>
可以捕获转换的所有类型是什么:List<Number>
List<Object>
List<Serializable>
List<? super Integer>
可捕获转换为上述所有类型。因此,您可以安全地将List<? super Number>
分配给List<? super Integer>
,而不会出现任何编译器错误。
万一您在考虑what is capture-conversion,这意味着您可以将List<Number>
分配给List<? super Number>
。