Java核心技术——泛型编程
2015-01-23 13:14
330 查看
一、泛型编程
1.泛型类是具有一个或多个类型变量的类,通过定义类型变量<T>的方式来指明是泛型类,类型变量使用大写形式,且比较短,一般用T、U、S表示
2.可以定义带有类型参数的方法,泛型方法可以定义在普通类中,也可以定义在泛型类中
3.调用泛型方法时,在方法名前的尖括号中放入具体类型,也可以不写,由编译器自行推断
4.类型变量T最多只能继承一个类,可以继承多个接口
5.如果T类型要调用compareTo方法,则必须将T限制为实现了Comparable接口,即<T extends Comparable>
6.无论何时定义一个泛型类型,都自动提供一个相应的原始类型,原始类型用第一个限定的类型来替换,如果没有给定限定就用Object替换
7.虚拟机中没有泛型,只有普通的类和方法
8.Class类就是一个泛型类
9.泛型类不会因为类型参数之间有继承关系而产生继承关系
二、约束与局限性
1.不能用基本类型实例化类型参数
2.Pair<T>的类型是Pair,和T和具体什么类没有关系
3.不能抛出也不能捕获泛型类实例,即泛型类不能继承和扩展Throwable类
4.不能使用参数化类型的数组,如 Pair<String>[]
5.不能实例化类型变量,如 new T(...)、T.class
6.不能在静态域或方法中引用类型变量
三、通配符类型
1.Pair<? extends Employee>表示任何泛型Pair类型,它的类型参数是Employee的子类,如Pair<Manager>
2.超类型限定 ? super Manager 限制为Manager的所有超类型,但不能用作返回值
3.直观地讲,带有超类型限定的通配符可以向泛型对象写入,带有子类型限定的通配符可以从泛型对象读取
4.通配符不是类型变量,不能使用“?”作为一种类型
1.泛型类是具有一个或多个类型变量的类,通过定义类型变量<T>的方式来指明是泛型类,类型变量使用大写形式,且比较短,一般用T、U、S表示
2.可以定义带有类型参数的方法,泛型方法可以定义在普通类中,也可以定义在泛型类中
3.调用泛型方法时,在方法名前的尖括号中放入具体类型,也可以不写,由编译器自行推断
4.类型变量T最多只能继承一个类,可以继承多个接口
5.如果T类型要调用compareTo方法,则必须将T限制为实现了Comparable接口,即<T extends Comparable>
6.无论何时定义一个泛型类型,都自动提供一个相应的原始类型,原始类型用第一个限定的类型来替换,如果没有给定限定就用Object替换
7.虚拟机中没有泛型,只有普通的类和方法
8.Class类就是一个泛型类
9.泛型类不会因为类型参数之间有继承关系而产生继承关系
二、约束与局限性
1.不能用基本类型实例化类型参数
2.Pair<T>的类型是Pair,和T和具体什么类没有关系
3.不能抛出也不能捕获泛型类实例,即泛型类不能继承和扩展Throwable类
4.不能使用参数化类型的数组,如 Pair<String>[]
5.不能实例化类型变量,如 new T(...)、T.class
6.不能在静态域或方法中引用类型变量
三、通配符类型
1.Pair<? extends Employee>表示任何泛型Pair类型,它的类型参数是Employee的子类,如Pair<Manager>
2.超类型限定 ? super Manager 限制为Manager的所有超类型,但不能用作返回值
3.直观地讲,带有超类型限定的通配符可以向泛型对象写入,带有子类型限定的通配符可以从泛型对象读取
4.通配符不是类型变量,不能使用“?”作为一种类型
相关文章推荐
- Java2核心技术第七版的学习笔记(二):.The Java Programming Environment(Java的环境)
- [翻译]Java 核心技术(第7版)(1)
- JAVA2核心技术阅读笔记(一)
- java实现图片浏览:java核心技术学习
- JAVA2核心技术第1卷 笔记 02
- java 核心技术 第2版 的痛苦
- Java2核心技术学习
- 《最新Java2 核心技术 卷I:原理 原书第5版》学习足迹
- JAVA2核心技术卷1 学习笔记3 对象和类
- Java 核心技术丛书 卷I 学习心得
- [翻译]Java 核心技术(第7版)(2)
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(二)
- [翻译]Java 核心技术(第7版)(3)
- 新一代Java核心技术即将出现
- ShapeTest [java核心技术2 第7章]
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(一)
- [翻译]Java 核心技术(第7版)(2)
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(三)
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- java2核心技术之数据库编程笔录(一)