Java核心篇之泛型–day5
泛型是JDK5时引入的一个新特性,泛型提供了编译时类型安全检查的机制,该机制允许程序猿在编译时检测到非法的类型输入。
泛型的本质是参数化类型,也就是说操作的类型被指定为一个参数。
假定我们有一个需求:写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?
答案是可以使用 Java 泛型。
泛型方法:该方法在调用的时候可以接收不同的参数类型,规则如下:
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。
- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。
- 有界的类型参数:例如,一个操作数字的方法可能只希望接受Number或者Number子类的实例。这就是有界类型参数的目的。
泛型类:
- 泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。
类型通配符:
2. 类型通配符一般是使用?代替具体的类型参数。例如 List<?> 在逻辑上是List,List 等所有List<具体类型实参>的父类。