浅显理解Java泛型的super和extends

@

  • add方面

  • 返回值方面

  • add方面

    • 返回值方面


概念简单理解

  • List<? extends T>表示该集合中存在的都是类型T的子类,包括T自己

  • List<? super T>表示该集合中存的都是类型T的父类,包括T自己

代码样例解读

==父子类代码:==

Plant plant = listB.get(0);

因为listB的集合类型是Plant或者它的子类,所以不清楚到底会是哪个类,但是我们可以知道,最高的类型就是Plant了,所以返回值就是Plant类型的。

总结

  • List<? super T>表示该集合中存的都是类型T的父类,包括T自己

    • add:只能添加T及T的子类

    • get:get返回的对象类型为Object

  • List<? extends T>表示该集合中存在的都是类型T的子类,包括T自己

    • add:不能add任何对象(特例:可以添加null)

    • get:get返回的对象类型为T

版权声明:原创博主:牛哄哄的柯南博主原文链接:https://keafmd.blog.csdn.net/

看完如果对你有帮助,感谢点击下面的==一键三连==支持![哈哈][抱拳]浅显理解Java泛型的super和extends浅显理解Java泛型的super和extends加油!

共同努力!

Keafmd


本篇文章来源于微信公众号: 牛哄哄的柯南

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/11884.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!