Java 泛型中的? super T和? extends T
super 要求 ? 必须是 T 的超类或者自身
extends 要求 ? 必须是T的子类或者自身
/*** <? super T>* super 要求 ? 必须是 T 的超类或者自身* Super*/@Testpublic void testSuper() {//ArrayList泛型为String,符合<? super String>的要求,String和String本身是相同的类型List<? super String> ts = new ArrayList<String>();//正确//ArrayList的泛型是Object,Object是所有类的父类,符合<? super T>的要求List<? super String> objects = new ArrayList<Object>();//正确//ArrayList的泛型是String,String和Integer没啥关系,不符合要求//List<? super Integer> strings = new ArrayList<String>();//错误//ArrayList的泛型是String,String是Object的子类,不符合要求//List<? super Object> strings = new ArrayList<String>();//错误 }
/*** <? extends T>* extends 要求 ? 必须是T的子类或者自身*/public void testExtends(){//ArrayList的泛型是String,String是Object的子类,符合<? extends T>的要求List<? extends Object> strings = new ArrayList<String>(); //ArrayList的泛型是Object,Object是String的父类,不符合<? extends T>的要求//List<? extends String> objects = new ArrayList<Object>(); //错误 }
转载于:https://www.cnblogs.com/zhangminjie/p/4357531.html
Java 泛型中的? super T和? extends T相关推荐
- Java泛型中extends T和super T的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- Java泛型中extends和super的理解(转)
E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定 ...
- Java泛型中extends和super的区别?
区别 <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概 ...
- Java泛型中? 和 ? extends Object的异同分析
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 刘一手 来源 | 公众号「锅外的大佬」 Jav ...
- Java泛型三:通配符详解extends super
在java泛型中,? 表示通配符,代表未知类型,< ? extends Object>表示上边界限定通配符,< ? super Object>表示下边界限定通配符. 通配符 与 ...
- 聊一聊Java 泛型中的通配符 T,E,K,V,?
点击上方"方志朋",选择"设为星标" 回复"1024"获取独家整理的学习资料 作者:glmapper juejin.im/post/5d57 ...
- 聊一聊-JAVA 泛型中的通配符 T,E,K,V,?
前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据 ...
- Java泛型中的PECS原则
今天在写代码的时候使用到了这样一个方法签名: public void foo(Map<String, String> map); 在写这个参数的时候正好在想一些关于泛型的东西,于是: pu ...
- JAVA 泛型中的通配符 T,E,K,V,?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 来源:8rr.co/2Xqx 前言 Java 泛型(generic ...
最新文章
- v-bind 中a标签的使用
- 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
- 802.11的隐藏节点和RTS,CTS机制
- matlab循环前后变量定义,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
- C#实现bitmap图像矫正
- DCMTK:DcmOtherLong类的测试程序
- 七、Forword(请求转发)与Redirect(重定向)
- 95-36-220-ChannelHandler-RejectedExecutionHandlers
- php如何修改二维数组的值,php如何改变二维数组的值
- 并发编程之美(1)并发编程基础二
- Xpose 建立新工程
- 上帝视角-我是一个线程『转』
- 什么相片可以两张弄成一张_美图秀秀怎么把两张图片合成一张?美图秀秀两张图片融合方法汇总...
- python nextpow2_Python signal.hann方法代码示例
- Tyvj4071放射性辐射尘题解
- 关于数据分析的一些实例报告
- 用python整个活(2)——用numpy做一个蜘蛛纸牌
- 同济七版高等数学 上册 复习指导、公式推理简易过程、常用结论归纳
- 总结归纳“windows 找不到文件‘cmd’,命令提示符无法执行和打开”的多种错误方法规避,错误重现以及正确解决方法
- 滴滴(夜莺)Nightingale监控部署
热门文章
- cuda Memory Fence Functions
- opencv 数学操作
- c ++ helloworld
- VCSA 6.7 U2无DNS部署 VCSA 7正式版无DNS部署
- 神州数码携手IBM与红帽共商“新基建”机遇与挑战
- NetScaler SDWAN 的前世今生
- Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
- 联想服务器st系列,联想ThinkSystem ST50评测 一款超值的入门级服务器
- 乌班图mysql8.0安装第一次手工启动_Ubuntu Server 16.04下mysql8.0安装配置图文教程
- html禁止转义reg,HTML转义 - Reg表达式?