Java泛型类型限定
泛型类型限定(1)
编写的代码可以被很多不同类型的对象重用
特定场合下,需要对类型进行限定
-如约定必须是Comparable的子类
-extends 固定,后面可以是多个,以&拼接,如<T extends Comparable&Serializable>
-extends限定可以有多个接口。但只能有一个类,且必须是拍在第一位
-逗号隔参数,<T extends File & Cloneable, U extends Serializable>
泛型继承原则(1)
1、泛型类之间的继承
-Pair和Pair之间没有任何关系,无论S和T之间是什么关系
-泛型类可以扩展或实现其他类,如ArrayList实现List
List orange = new ArrayList();
泛型通配符类型(1)
1、上限界定符,Pair<? extends S>
-Pair能接收的参数类型,是S自身或子类
Pair<? extends Fruit>代表Pair,pair等
只能set
2、下限界定符 Pair<? super S>
-Pair 能接收的类型参数,是S的自身或超类
Pair<? super Apple>代表Pair,Pair,Pair等
只能get不能set,编译器保证放入的是S本身或超类,但不保证出来是什么具体类型
泛型PECS原则
-Producer Extends Consumer Super
-要从泛型类读取类型T的数据,并且不能写入,可以使用?
extends 通配符:(Producer Extends,泛型是生产者,往外输出)
-如果要向泛型类写入类型T的数据,并且不需要读取,可以使用?
super通配符:(Consumer Super,泛型类是消费者,往内增加)
-如果既想写入又想读出,就不使用通配符
Java泛型类型限定相关推荐
- 揭开Java 泛型类型擦除神秘面纱
转载自 揭开Java 泛型类型擦除神秘面纱 泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘 ...
- list 泛型_带你深挖Java泛型类型擦除以及类型擦除带来的问题
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:蜗牛大师 cnblogs.com/wuqinglong/p/9456193.html ...
- Java中限定类名和非限定类名的区别
限定类名,就是类名全称,带包路径的用点隔开,例如: java.lang.String. 非限定(non-qualified)类名也叫短名,就是我们平时说的类名,不带包的,例如:String. 非限定类 ...
- Java 全限定类名和非限定类名有何区别
为了方便说明,这里创建一个普通Java类来做演示 package com.csdn.test;public class HelloWorld {} 1.1 对于该类来说:全限定类名就是包名.类名,即c ...
- Java泛型解析(02):通配符限定
Java泛型解析(02):通配符限定 考虑一个这种场景.计算数组中的最大元素. [code01] public class ArrayUtil {public static <T> ...
- java 类名正则表达式_java – 匹配完全限定类名的正则表达式
Java完全限定类名(让我们说"N")具有结构 N.N.N.N "N"部分必须是Java标识符. Java标识符不能以数字开头,但在初始字符后,它们可以使用字母 ...
- 泛型java 代码讲解_Java泛型详解
2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...
- java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
原 java泛型(二).泛型的内部原理:类型擦除以及类型擦除带来的问题 2012年08月29日 23:44:10 Kilnn 阅读数:56717 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- Java泛型深入理解小总结
转载自博客园:http://www.cnblogs.com/fantasy01/p/3963593.html 1.何为泛型 首先泛型的本质便是类型参数化,通俗的说就是用一个变量来表示类型,这个类型可以 ...
最新文章
- uniapp怎么引入css_uniapp - css样式设置scoped
- AngularJS之禅
- RouterModule.forRoot 和 RouterModule.forChild 的区别
- python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...
- 怎样在 Centos 6.8 中安装 Elasticsearch 5.2
- 运维实战案例之“Too many open files”错误与解决方法
- Redis实践操作之—— keyspace notification(键空间通知)
- Jquery打造AdRotator轮转图片
- C++ Log4Cpp 使用
- odoo 14 手册 客户 报价单 销售订单
- Revertable STFT
- 美团2018校园招聘 研发工程师(三)
- python做小游戏之一小迷宫游戏
- Thread小练习(网图下载)
- fitbit aria体脂秤二次开发遇到的问题
- 计算机五大部件相关知识
- Linux OverCommit分析 - Linux内存管理
- Excel Vba无法连接 远程 Mysql数据库问题的解决方法
- 金蝶O2O转型 破解企业三大痛点
- java abc输出bca_面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab c...