java 泛型中子类型的疑惑?

发布于 2022-09-11 20:31:04 字数 351 浏览 29 评论 0

初学 java,在文档里面看到一篇有关泛型的文章,文章链接为:https://docs.oracle.com/javas...

其中最后一张图里面,为什么 List<Number> 可以是 List<? extends Number> 的子类型?个人理解 <? extends Number> 表示了该类型是 Number 的一个子类型,那么箭头应该反着画才对?

个人初学 java,还有很多不理解,望能有前辈指点,不胜感激

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

奶茶白久 2022-09-18 20:31:04

这个图你可以理解几种List的类型的分层关系。把List<? extends Number>List<Number>当做一个整体来理解就好,就像前面的那位说的。如果还是不理解可以实操一下。
图一这样赋值是没有问题的,但是图二反过来就会有问题。

clipboard.png

clipboard.png

另外泛型学习推荐一篇很好的文章:https://blog.csdn.net/briblue...

夜光 2022-09-18 20:31:04

你看错了,图上没说 List<Number> 可以是 List<? extends Number> 的子类型,图上说List<Number> 可以是 List<? super Number> 的子类型,super而不是extends,List<? super Number>的元素是Number的父类。

蓝海似她心 2022-09-18 20:31:04

List<? extends Number> 容器能容纳List<Number>, 这么理解就好了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文