###1. 特点, 好处
java1.5后出现 包含1.5版本
泛型的出现 解决程序的安全性 保证程序的一致安全机制
使用泛型 避免了类型的强制类型转换 代码就简单
数据类型只能是 应用类型 不能使基本类型,且前后保持一致
泛型的 定义格式:
集合类<数据类型>变量 = new集合类<数据类型>();
###2. 定义使用 ####1) 泛型类
这个
参数就可以接受任意类型
对该类创建对象时对泛型进行了定义 方法上 也必须遵从同一规则 如果类上不进行定义 直接使用该方法时候 有这个泛型的时候就可以传任意类型
类泛型 不支持super关键字 继承写法不支持? 通配符
public class FanXing<T>{
}
####2)泛型方法
需要在方法返回值前定义 参数的泛型 如下, 不可定义在返回值后 返回值前加泛型定义, 类上无定义时需要, 否则可以隐藏掉
public <T>void show(T t){
}
public class FanXing<T>{
public void show(T t){
}
}
####3)泛型变量
不可设置static 泛型变量依赖泛型类, 类上无泛型则 变量报错 T cannot be resolved to a type
public class fanxingtest<T>{
private List<T> list;
private T t = null;
}
###3. 关键字 java 提供的泛型例子
List<E>...
Set<E>... 等泛型控制类
###1) super 关键字
下边界限定 父类限定符, 指 ArrayList 中只能够存放Dog的父类类型的数据 eg: 动物,object对象等其他父类对象(包含自己)。
List<? super Dog> list = new ArrayList<>();
list.add(动物);
list.add(哺乳动物)
###2) extends关键字
上边界限定符 指 ArrayList只能够存放Dog的子类对象(包含自己) eg: 二哈, 金毛, 德牧 等... 各种各样的狗
List<? extends Dog> list = new ArrayList<>();
list.add(金毛);
list.add(哈士奇)