Thinking in Java——第十五章-泛型
2016-08-12 20:51
218 查看
第十一章讲过泛型对于代码的安全很有用处。
书中第十五章讲述了大量的篇幅,我这里就简单的介绍一下。(个人泛型用的不多,体会不深,然后书中讲的也没有给我太多启迪)
15.1 与C++的比较
C++中的模板
15.2 简单泛型
上面这个类就可以接收所有类型
15.2.1 一个元组类库
15.3 泛型接口
返回类型都是T类型的
15.4 泛型方法
15.5 匿名内部类
15.6 构建复杂模型
15.7 擦除的神秘之处
c1 == c2, 是个谜题~
15.8
擦除的补偿
引入类型标签
15.9 边界
T需要时HasColor的子类
15.10 通配符
15.11 问题
任何基本类型都不能作为类型参数
一个类不能实现同一个泛型接口的两种变体
由于擦除,instanceof是没用的
下面的代码是不能编译的
基类劫持了接口
15.2 自限定的类型
它强调的是当extends用于边界与创建子类是不同的。
15.3 动态类型安全
查看checkedCollection等。异常类型ClassCastException
15.14 异常
15.15 混型
15.16 潜在类型机制
15.17 对潜在类型机制的补偿
15.18 将函数对象用作策略
书中第十五章讲述了大量的篇幅,我这里就简单的介绍一下。(个人泛型用的不多,体会不深,然后书中讲的也没有给我太多启迪)
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 将函数对象用作策略
相关文章推荐
- 《Java 编程思想》--第十五章:泛型
- [Thinking in Java]15.泛型
- thinking in java笔记 15 泛型
- Thinking in java:泛型
- Thinking in java-38 Java 泛型Generics in java
- Thinking in Java 第15章 泛型(15.5-15.19)
- 再读thinking in java -- 第十五章 泛型(二)
- Thinking in Java 泛型章节中不用LinkedList来实现自己的内部链式存储机制
- Thinking in Java 第15章 泛型(15.1-15.4)
- Thinking in Java:第十五章-泛型
- Thinking in java学习笔记—泛型(擦除)
- 再读thinking in java -- 第十五章 泛型(一)
- thinking in java笔记 15 泛型
- 关于《Java 编程思想》第四版第十五章“泛型”逆变例子的疑惑
- 再读thinking in java -- 第十五章 泛型(三)
- think in java 第十五章 泛型 总结随笔
- Thinking in Java学习笔记(2)(zt)
- 我的Thinking in Java学习笔记(2)
- Thinking in java 中文版 程序源代码
- Java,泛型,Generic java,JDK1.5beta,简约主义的朋友还是敌人