泛型类型限定(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泛型类型限定相关推荐

  1. 揭开Java 泛型类型擦除神秘面纱

    转载自   揭开Java 泛型类型擦除神秘面纱 泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘 ...

  2. list 泛型_带你深挖Java泛型类型擦除以及类型擦除带来的问题

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:蜗牛大师 cnblogs.com/wuqinglong/p/9456193.html ...

  3. Java中限定类名和非限定类名的区别

    限定类名,就是类名全称,带包路径的用点隔开,例如: java.lang.String. 非限定(non-qualified)类名也叫短名,就是我们平时说的类名,不带包的,例如:String. 非限定类 ...

  4. Java 全限定类名和非限定类名有何区别

    为了方便说明,这里创建一个普通Java类来做演示 package com.csdn.test;public class HelloWorld {} 1.1 对于该类来说:全限定类名就是包名.类名,即c ...

  5. Java泛型解析(02):通配符限定

    Java泛型解析(02):通配符限定      考虑一个这种场景.计算数组中的最大元素. [code01] public class ArrayUtil {public static <T> ...

  6. java 类名正则表达式_java – 匹配完全限定类名的正则表达式

    Java完全限定类名(让我们说"N")具有结构 N.N.N.N "N"部分必须是Java标识符. Java标识符不能以数字开头,但在初始字符后,它们可以使用字母 ...

  7. 泛型java 代码讲解_Java泛型详解

    2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...

  8. java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题

    原 java泛型(二).泛型的内部原理:类型擦除以及类型擦除带来的问题 2012年08月29日 23:44:10 Kilnn 阅读数:56717 版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  9. Java泛型深入理解小总结

    转载自博客园:http://www.cnblogs.com/fantasy01/p/3963593.html 1.何为泛型 首先泛型的本质便是类型参数化,通俗的说就是用一个变量来表示类型,这个类型可以 ...

最新文章

  1. uniapp怎么引入css_uniapp - css样式设置scoped
  2. AngularJS之禅
  3. RouterModule.forRoot 和 RouterModule.forChild 的区别
  4. python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...
  5. 怎样在 Centos 6.8 中安装 Elasticsearch 5.2
  6. 运维实战案例之“Too many open files”错误与解决方法
  7. Redis实践操作之—— keyspace notification(键空间通知)
  8. Jquery打造AdRotator轮转图片
  9. C++ Log4Cpp 使用
  10. odoo 14 手册 客户 报价单 销售订单
  11. Revertable STFT
  12. 美团2018校园招聘 研发工程师(三)
  13. python做小游戏之一小迷宫游戏
  14. Thread小练习(网图下载)
  15. fitbit aria体脂秤二次开发遇到的问题
  16. 计算机五大部件相关知识
  17. Linux OverCommit分析 - Linux内存管理
  18. Excel Vba无法连接 远程 Mysql数据库问题的解决方法
  19. 金蝶O2O转型 破解企业三大痛点
  20. java abc输出bca_面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab c...

热门文章

  1. 历经10年发展,开源框架WebRTC现已成为官方Web标准
  2. 案例:上海期货交易所的信息经济学
  3. 使用EMQX搭建的MQTT服务器 如何转发数据并保存到云端数据库?
  4. ubuntu18.04鼠标侧键设置为上下滚动
  5. 入侵网站的各种漏洞的利用
  6. 随着 Fancy Lazarus 组织的回归,检测到新的 DDoS 勒索攻击
  7. 跳槽焦虑症,想走却不敢裸辞,一怂再怂
  8. 电力自动化通信技术中的信息安全及应用
  9. 基于显扬科技3D视觉相机的芯片外观检测系统
  10. 高级性能测试系列《17. DDT数据驱动性能测试:csv数据文件设置。 》