【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泛型程序设计——泛型类型的继承原则相关推荐

  1. java泛型程序设计——注意擦除后的冲突

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 注意擦除后的冲突 的知识: 1.1)当泛型类型被 擦除时, 无法创建 ...

  2. java泛型程序设计——翻译泛型表达式+翻译泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 翻译泛型表达式+翻译泛型方法 的知识: [1]翻译泛型表达式 1.1 ...

  3. java泛型程序设计——类型变量限定 + 泛型代码和虚拟机

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 类型变量限定 + 泛型代码和虚拟机 的知识: [1]类型变量的限定 ...

  4. java泛型程序设计——反射和泛型

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 反射和泛型 的相关知识: [1]反射和泛型相关 1.1)现在, Cl ...

  5. java泛型程序设计——通配符类型+通配符的超类型限定

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 通配符类型+通配符的超类型限定 的知识: [1]通配符类型相关 1. ...

  6. java泛型程序设计——Varargs 警告+不能实例化类型变量

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 Varargs 警告+不能实例化类型变量 的知识: [1] Vara ...

  7. java泛型程序设计——约束与局限性

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 约束与局限性 的知识: [1] 不能用基本类型实例化类型参数 1.1 ...

  8. java泛型程序设计——调用遗留代码

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 调用遗留代码 的知识: [1]调用遗留代码相关 1.1)设计java ...

  9. java泛型程序设计——定义简单泛型类+泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 定义泛型类+泛型方法的知识: [1]一个泛型类: 就是具有一个或多个 ...

最新文章

  1. 搜索github项目stars排名
  2. 单词拼接 ----- 深搜
  3. java有画图的库吗_Java画图
  4. 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
  5. 文件夹的位置_感觉电脑变卡了?删除这5个文件夹 C盘立马清爽
  6. web的demo制造_基于Web的制造追溯系统DEMO
  7. Java调用存储过程返回数组
  8. ibm x5服务器系统重装,IBM 3850 X5 Server安装Windows 2003步骤说明
  9. 智能变电站调试仿真培训系统 61850规约培训系统 免费送
  10. 2020美亚团队赛复盘
  11. 通过端口查看进程和通过进程查看端口
  12. HTML怎么使表格居中显示
  13. Java - mian()
  14. 游戏服务器架构,配置
  15. 20190401每周精品之认知
  16. 一个博士的悲情经历~失败的经验最美···小木虫上的系列精华帖(科研的、被科研的,共勉。转载,个人整理)
  17. c语言源程序自动评判系统,C语言源程序的自动评判系统.pdf
  18. JUNIPER路由器中常用命令总结
  19. 网易AI工程师面试常见知识
  20. HarmonyOS之深入解析相机的功能和使用

热门文章

  1. CF1245F Daniel and Spring Cleaning(等会了更新)
  2. 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题
  3. P3188-[HNOI2007]梦幻岛宝珠【背包】
  4. P3441-[POI2006]MET-Subway【图论,贪心】
  5. jzoj2941-贿赂【数学期望,dfs】
  6. 纪中培训总结(2019年1月21~31日)
  7. 【动态规划】【递归】取数字问题 (ssl 1644)
  8. 图书管理员【2017年普及组第二题】
  9. Shell变量的初始值赋值
  10. JavaFX UI控件教程(十一)之Scroll Pane