首页 > 编程语言 > 详细

java泛型中的上、下界通配符

时间:2018-05-03 18:31:36      阅读:225      评论:0      收藏:0      [点我收藏+]

java泛型中,通配符?表示未知类型,等同于<? extends Object>,<? extends T>是上边界限定通配符,<? super T>是下边界限定通配符。

一、区别

在一个list中,上下界通配符能够存放和读取的对象类型如下图所示:

技术分享图片

 

 

二、原则

上下界通配符的使用应当遵循PECS原则:Producer Extends,Consumer Super。

限定通配符总是包括自己

上界类型通配符:add方法受限

下界类型通配符:get方法受限

如果你想从一个数据类型里获取数据,使用 ? extends 通配符

如果你想把对象写入一个数据结构里,使用 ? super 通配符

如果你既想存,又想取,那就别用通配符

不能同时声明泛型通配符上界和下界

 

参考:

Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/20400700/answer/117464182

https://blog.csdn.net/claram/article/details/51943742

java泛型中的上、下界通配符

原文:https://www.cnblogs.com/Nelofie/p/8986618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!