初学 java,在文档里面看到一篇有关泛型的文章,文章链接为:https://docs.oracle.com/javas...
其中最后一张图里面,为什么 List<Number> 可以是 List<? extends Number> 的子类型?个人理解 <? extends Number> 表示了该类型是 Number 的一个子类型,那么箭头应该反着画才对?
个人初学 java,还有很多不理解,望能有前辈指点,不胜感激
初学 java,在文档里面看到一篇有关泛型的文章,文章链接为:https://docs.oracle.com/javas...
其中最后一张图里面,为什么 List<Number> 可以是 List<? extends Number> 的子类型?个人理解 <? extends Number> 表示了该类型是 Number 的一个子类型,那么箭头应该反着画才对?
个人初学 java,还有很多不理解,望能有前辈指点,不胜感激
你看错了,图上没说 List<Number> 可以是 List<? extends Number> 的子类型,图上说List<Number> 可以是 List<? super Number> 的子类型,super而不是extends,List<? super Number>的元素是Number的父类。
15 回答8.3k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
这个图你可以理解几种List的类型的分层关系。把
List<? extends Number>
和List<Number>
当做一个整体来理解就好,就像前面的那位说的。如果还是不理解可以实操一下。图一这样赋值是没有问题的,但是图二反过来就会有问题。
另外泛型学习推荐一篇很好的文章:https://blog.csdn.net/briblue...