java 泛型中子类型的疑惑?
初学 java,在文档里面看到一篇有关泛型的文章,文章链接为:https://docs.oracle.com/javas...
其中最后一张图里面,为什么 List<Number> 可以是 List<? extends Number> 的子类型?个人理解 <? extends Number> 表示了该类型是 Number 的一个子类型,那么箭头应该反着画才对?
个人初学 java,还有很多不理解,望能有前辈指点,不胜感激
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个图你可以理解几种List的类型的分层关系。把
List<? extends Number>
和List<Number>
当做一个整体来理解就好,就像前面的那位说的。如果还是不理解可以实操一下。图一这样赋值是没有问题的,但是图二反过来就会有问题。
另外泛型学习推荐一篇很好的文章:https://blog.csdn.net/briblue...
你看错了,图上没说 List<Number> 可以是 List<? extends Number> 的子类型,图上说List<Number> 可以是 List<? super Number> 的子类型,super而不是extends,List<? super Number>的元素是Number的父类。
List<? extends Number> 容器能容纳List<Number>, 这么理解就好了