Java学习笔记【十、泛型】
简介
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型方法
- 泛型方法的类型参数声明在返回类型之前
- 类型参数声明可包含一个或多个类型参数 public static < E,T > T printArray( E[] inputArray )
- 类型参数能被用来声明返回类型,或形参类型,并在方法体中使用
- 类型参数只能代表引用类型,不能代表原始类型
- 可以使用 extendeds 或 implements 限定泛型类型参数 public static <T extends Comparable
> T maximum(T x, T y, T z)
泛型类
- 泛型类的类型参数声明在类名之后 public class Box<T,E>
- 类型参数可在类定义中使用
类型通配符
- 用 ? 代替具体类型,如 List<?> 在逻辑上是List
>,List 等所有List<具体类型实参>的父类。 - 用 extends 或 implements 对 ?做上限限定 public static void getUperNumber(List<? extends Number> data)
- 类型通配符下限通过形如 List<? super Number>来定义,表示类型只能接受Number及其三层父类类型,如Objec类型的实例