泛型(Generic type 或者generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类
好处:1.类型更加安全
做法: 1.使用尖括号来指定形式类型参数,
2.推荐的命名约定是使用大写的单个字母名称作为类型参数
* K —— 键,比如映射的键。
* V —— 值,比如 List 和 Set 的内容,或者 Map 中的值。
* E —— 异常类。
* T —— 泛型。
3。泛型不是协变的
void printList(List<Object> l) {
for (Object o : l)
System.out.println(o);
}编译不过
4。void printList(List<?> l) {
for (Object o : l)
System.out.println(o);
}
上面的代码可以,?是通配符,List<?>是任何泛型List的父类型,
可以方便从中检索元素,但是不能添加元素(可以添加null)。
5.方法同样可以被泛型化,好处如下:
* 当泛型方法是静态的时,这种情况下不能使用类类型参数。
* 当 T 上的类型约束对于方法真正是局部的时,这意味着没有在相同类的另一个 方法签名中使用相同 类型 T 的约束。
通过使得泛型方法的类型参数对于方法是局部的,可以简化封闭类型的签名。
6.有限制类型
public class Matrix<V extends Number> { ... }