Thinking in Java——第十五章-泛型
来源:互联网 发布:黄金家族软件 编辑:程序博客网 时间:2024/05/17 06:35
第十一章讲过泛型对于代码的安全很有用处。
书中第十五章讲述了大量的篇幅,我这里就简单的介绍一下。(个人泛型用的不多,体会不深,然后书中讲的也没有给我太多启迪)
15.1 与C++的比较
C++中的模板
15.2 简单泛型
public class Holder{ private Object a; public Holder (Object a) { this.a = a; } public void set(Object a) { this.a = a; } public Object get(){ return a; }}
上面这个类就可以接收所有类型
15.2.1 一个元组类库
package com.sdkd.hms12;public class C <A, B>{ public final A first; public final B second; public C(A a, B b){ first = a; second = b; }}
15.3 泛型接口
interface<T>{ T next(); }
返回类型都是T类型的
15.4 泛型方法
public <T> void f(T x){}
15.5 匿名内部类
public static Generator<Customer> generator{ return new Genrator<Customer>{ public Customer next(){ return new Customer(); } }}
15.6 构建复杂模型
public class TupleList<A, B, C, D> extends ArrayList<FourTuple<A, B, C, D>>{}
15.7 擦除的神秘之处
Class c1 = new ArrayList<String>().getClass();Class c2 = new ArrayList<Integer>().getClass();
c1 == c2, 是个谜题~
15.8
擦除的补偿
引入类型标签
15.9 边界
class Colored <T extends HasColor>{}
T需要时HasColor的子类
15.10 通配符
List< ? extends Fruit>
15.11 问题
- 任何基本类型都不能作为类型参数
- 一个类不能实现同一个泛型接口的两种变体
- 由于擦除,instanceof是没用的
- 下面的代码是不能编译的
public class UseList<W, T>{ void f(List<T>) {} void f(List<W>) {}}
- 基类劫持了接口
15.2 自限定的类型
class SelfBounded< T extends SelfBounded<T>>{}
它强调的是当extends用于边界与创建子类是不同的。
15.3 动态类型安全
查看checkedCollection等。异常类型ClassCastException
15.14 异常
15.15 混型
15.16 潜在类型机制
15.17 对潜在类型机制的补偿
15.18 将函数对象用作策略
0 0
- Thinking in Java——第十五章-泛型
- Thinking in Java 泛型
- 泛型------thinking in java
- Thinking in java:泛型
- Thinking In Java有感——java泛型
- Thinking in java学习笔记—泛型(擦除)
- 《Thinking in Java》学习笔记——第七章:多形性
- 第1章 对象入门——Thinking-in-Java
- 第2章 一切都是对象——Thinking-in-Java
- Thinking in Java——第二章-一切都是对象
- Thinking in Java——第三章-操作符
- Thinking in Java——第四章-控制执行流程
- Thinking in Java——第六章-访问控制权限
- Thinking in Java——第七章-复用类
- Thinking in Java——第八章-多态
- Thinking in Java——第十章-内部类
- Thinking in Java——第十一章-持有对象
- Thinking in Java——第十三章-字符串
- 快捷键
- 单链表 双链表 环链表的简单操作
- Codeforces Round #367 (Div. 2) [C] Hard Problem
- POJ1584 几何 凸包判断 点和多边形的位置关系
- excel转Android string资源脚本
- Thinking in Java——第十五章-泛型
- xwiki的搭建
- Ubuntu下安装libpcap
- POJ 2352 Stars
- LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal
- HDOJ 1411 校庆神秘建筑
- 一个测试工程师面试官的真实分享!个人超赞同!
- Rightmost Dight(知识点:快速幂+题目分析)HDU1061
- Scala偏函数、异常、Lazy值编码之编程进阶(5)