java泛型程序设计——泛型类型的继承原则
【0】README
0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 泛型类型的继承原则 的知识;
【1】泛型类型的继承原则相关
1.1)考虑一个类 Employee 和一个Employee子类 Manger , 问: Pair 是 Pair 的一个子类吗?答案是: “不是的”;
1.2)看个荔枝:(下面的代码将不能编译)
Manager[] m1 = ...;
Pair<Employee> results = ArrayAlg.minmax(m1); // ERROR
minmax 方法返回 Pair<Manager> ,而不是 Pair<Employee> ,并且这样的赋值是不合法的;
Annotation)
- A1)可以将一个 Manger[] 数组赋给一个 Employee[] 的 数组;
Manager[] m1 = {ceo , cfo};
Employee[] e1 = m1; //OK
- 然而, 数组带有特别的保护, 如果试图将一个 低级别的雇员存储到 e1[0], 那么虚拟机会 抛出 ArrayStoreException 异常;
- A2)永远可以将参数化类型转换为一个原始类型: 如, Pair《Employee》 是原始类型 Pair 的一个子类型;
Pair< Manger> m1 = new Pair<>(ceo, cfo);
Pair m2 = m1; //OK
r2.setFirst(new File("...")) // only a compile-time warning
- 当使用 getFirst 获得外来对象并赋给 Manager变量时, 与通常一样, 会抛出 ClassCastExcetpion 异常。
- A3)最后泛型类可以扩展或 实现 其他的泛型类: 如, ArrayList《T》 类实现 List《T》 接口。 这意味着, 一个 ArrayList《Manager》 可以被转换为一个 List《Manager》。 但是, 如前面所见, 一个 ArrayList《Manager》 不是一个 ArrayList《Employee》或 List《Employee》;
- 下图展示了它们的联系:
java泛型程序设计——泛型类型的继承原则相关推荐
- java泛型程序设计——注意擦除后的冲突
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 注意擦除后的冲突 的知识: 1.1)当泛型类型被 擦除时, 无法创建 ...
- java泛型程序设计——翻译泛型表达式+翻译泛型方法
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 翻译泛型表达式+翻译泛型方法 的知识: [1]翻译泛型表达式 1.1 ...
- java泛型程序设计——类型变量限定 + 泛型代码和虚拟机
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 类型变量限定 + 泛型代码和虚拟机 的知识: [1]类型变量的限定 ...
- java泛型程序设计——反射和泛型
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 反射和泛型 的相关知识: [1]反射和泛型相关 1.1)现在, Cl ...
- java泛型程序设计——通配符类型+通配符的超类型限定
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 通配符类型+通配符的超类型限定 的知识: [1]通配符类型相关 1. ...
- java泛型程序设计——Varargs 警告+不能实例化类型变量
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 Varargs 警告+不能实例化类型变量 的知识: [1] Vara ...
- java泛型程序设计——约束与局限性
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 约束与局限性 的知识: [1] 不能用基本类型实例化类型参数 1.1 ...
- java泛型程序设计——调用遗留代码
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 调用遗留代码 的知识: [1]调用遗留代码相关 1.1)设计java ...
- java泛型程序设计——定义简单泛型类+泛型方法
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 定义泛型类+泛型方法的知识: [1]一个泛型类: 就是具有一个或多个 ...
最新文章
- 搜索github项目stars排名
- 单词拼接 ----- 深搜
- java有画图的库吗_Java画图
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- 文件夹的位置_感觉电脑变卡了?删除这5个文件夹 C盘立马清爽
- web的demo制造_基于Web的制造追溯系统DEMO
- Java调用存储过程返回数组
- ibm x5服务器系统重装,IBM 3850 X5 Server安装Windows 2003步骤说明
- 智能变电站调试仿真培训系统 61850规约培训系统 免费送
- 2020美亚团队赛复盘
- 通过端口查看进程和通过进程查看端口
- HTML怎么使表格居中显示
- Java - mian()
- 游戏服务器架构,配置
- 20190401每周精品之认知
- 一个博士的悲情经历~失败的经验最美···小木虫上的系列精华帖(科研的、被科研的,共勉。转载,个人整理)
- c语言源程序自动评判系统,C语言源程序的自动评判系统.pdf
- JUNIPER路由器中常用命令总结
- 网易AI工程师面试常见知识
- HarmonyOS之深入解析相机的功能和使用
热门文章
- CF1245F Daniel and Spring Cleaning(等会了更新)
- 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题
- P3188-[HNOI2007]梦幻岛宝珠【背包】
- P3441-[POI2006]MET-Subway【图论,贪心】
- jzoj2941-贿赂【数学期望,dfs】
- 纪中培训总结(2019年1月21~31日)
- 【动态规划】【递归】取数字问题 (ssl 1644)
- 图书管理员【2017年普及组第二题】
- Shell变量的初始值赋值
- JavaFX UI控件教程(十一)之Scroll Pane