泛型方法
修饰符<类型变量,类型变量,…> 返回值类型 方法名 (形参列表){
}
public static <T> void test(T t){
}
传入的是字符串类型,返回的也就是同一种类型。
public static <T extends Car> void go(ArrayList<T> cars){// 限定泛型必须是Car的子类
// 或者另一种写法:
// ?通配符,在使用泛型的时候可以代表一切类型。 ? extends Car(上限) ? super Car(下限)
public static void go(ArrayList<? extends Car> cars){
}
泛型的擦除问题和注意事项
- 泛型是工作在编译阶段的,一旦程序编译成class文件,class文件中就不存在泛型了,这就是泛型擦除。
- 泛型不支持基本数据类型,只能支持对象类型(引用数据类型)。