作用:
泛型是将明确类型的工作推迟到创建对象或者调用方法的时候。
在类中定义泛型:
package com.lee.tsharding;
/**
* 带有泛型的类
* @param <T>
*/
public class GenercityClass<T> {
private T test;
public void setTest(T test) {
this.test = test;
}
public T getTest() {
return this.test;
}
}
在方法中定义泛型:
public <T> T test2(T e) {
System.out.println(e);
return e;
}
给泛型设置通配符上限:
List<? extends Number> // 表示必须是Number的子类
给泛型设置通配符下限:
<? super Type> // 表示必须是Type的父类
泛型擦除:
泛型作用的时间为 javac编译器将代码编译成class文件的时候,即生成的class文件中将不再带有泛型,此过程即是泛型擦除。
兼容性:
JDL5 以下,是不支持泛型的,会提示 未经检查的转换,而不是直接报错
泛型的应用:
泛型的应用的话,可以参考下经常用的 mybatis,可以直接定义好一个基础的DAO,因为数据库一些基础的操作是一样的,用泛型可以方便的传入特色的DAO(继承基础的DAO),这样可以避免一些重复的代码
网友评论