一、泛型
1、概述
- JDK 1.5 以后出现的机制
- 泛型可以解决类型转换的隐患(早期的Object 类型可以接收任意的对象类型)
2、泛型类
- 把泛型定义在类上
- 格式:
public class 类名<泛型类型1,…>
- 注意:泛型类型必须是引用类型
3、泛型方法
- 把泛型定义在方法上
- 格式:
public <泛型类型> 返回类型 方法名(泛型类型 .)
4、泛型接口
- 把泛型定义在接口上
- 格式:
public interface 接口名<泛型类型1…>
5、泛型通配符
- 符号:
<?>
:任意类型,如果没有明确,那么就是Object以及任意的Java类了 ? extends E
:向下限定,E及其子类? super E
:向上限定,E及其父类
二、增强 for 循环
1、概述
- 简化数组和 Collection 集合的遍历
2、格式
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
3、好处
- 简化遍历
4、注意
- 增强for的目标要判断是否为null
三、静态导入
1、概述
- 可以直接导入到方法的级别
2、格式
import static 包名….类名.方法名;
3、注意
- 方法必须是静态的
- 如果有多个同名的静态方法,若要使用静态导入,必须加前缀
四、可变参数(动态参数)
1、概述
- 定义方法的时候不知道该定义多少个参数
2、格式
修饰符 返回值类型 方法名(数据类型… 变量名){}
3、注意
- 这里的变量其实是一个数组
- 如果一个方法有可变参数,并且有多个参数,那么可变参数肯定是最后一个
4、Arrays 工具类中的一个方法
public static <T> List<T> asList(T... a)