在jdk1.5以前我们开发可能会遇到这样一种情况,我们 在使用集合时会出现类型转换错误,为了解决这一情况, 在jdk1.5以上引入了泛型概念,那么怎么使用呢?
泛型定义 比如arraylist<String>,public void <T> T demo(){}等,比如以下使用:
public class GenericDemo1 {
//泛型类型使用前必须先声明
//<T>就是声明的泛型类型,放在返回值的前面
public <T> T func1(){
return null;
}
public <T> void func2(T t){
}
public <T> void func3(Class<T> clazz){
}
}
同时我们也可以定义在类层上:
public class GenericDemo2<T> {
public T func1(){
return null;
}
public void func2(T t){
}
public void func3(Class<T> clazz){
}
//静态方法都必须先声明才能使用
public static <T> void func4(T t){
}
//Map结构
public static <K,V> V getKey(K k){
return null;
}
}
注意:不同的是如果方法为静态时我们就必须在方法上定义泛型类型。使用泛型之后我们可以定义我们所使用的参数类型,在编辑时进行检测,而避免了执行时因为类型的问题而异常,编辑器编辑成功之后,生成。class文件会将将泛型去除,也就是有一个“擦除”的过程。