泛型
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数
参数化类型:将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型
参数化类型可以用在类,方法和接口中,分别被称为:泛型类,泛型方法,泛型接口
泛型的好处
- 把运行时期的错误提前到了编译期间
- 避免了强制类型转换
泛型类
定义格式:修饰符 class 类名 < 类型 > { } (如 public class Run< T > { } ,其中,T为随意标识,T ,E ,V ,K 一般都用来标识泛型)
// Box.java
public class Box<T> {
// 泛型类
private T t; // 泛型
public void add(T t) {
// 可以接收任何类型
this.t = t;
}
public T get() {
return t;
}
// main.java
public static void main(String[] args) {
Box<Integer> integerBox = new Box<Integer>();
Box<String> stringBox = new Box<String>();
integerBox.add(new Integer(10));
stringBox.add(new String("菜鸟教程"));
System.out.printf("整型值为 :%d\n\n", integerBox.get()); // 整型值为 :10
System.out.printf("字符串为 :%s\n", stringBox.get()); // 字符串为 :菜鸟教程
}
}
泛型方法
定义格式:修饰符< 类型 > 返回值类型 方法名( 类