图片来自http://docs.oracle.com/javase/tutorial/java/generics/subtyping.html

List<? 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>

07-24 09:48
查看更多