public class Student implements MyGeneric<String>{}
public class Student<T> implements MyGeneric<T>{}
复制代码
泛型方法
public class MyGeneric {
//先声明泛型方法,之后可以返回类型或者在参数使用泛型
public <T> T show(T t){
return t;
}
public static void main(String[] args) {
MyGeneric myGeneric = new MyGeneric();
// 泛型类型由传入的数据类型决定
myGeneric.show("大家好");
myGeneric.show(1);
}
}
复制代码
泛型好处
提高重用性
防止类型转换异常
泛型集合
参数化类型、类型安全的集合,强制集合元素的类型必须一致
ArrayList<String> list = new ArrayList<String>();
//不写泛型默认是Object
复制代码
当不使用泛型时
ArrayList list = new ArrayList();
list.add("aa");
list.add(1);
for (Object o : list) {
String s= (String) o;
}
/*
Exception in thread "main" java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')