您的位置:首页 > 编程语言 > Java开发

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.通配符不是类型变量,不能使用“?”作为一种类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: