版本:JDK1.8
1、实现类后省略类型
List<Map<String,String>> data = new ArrayList<>();
2、限定类型对象参数
public static <T extends BaseDO> void initUser(T t) throws CustomException {...
说明:在返回值类型前限定参数类型范围,方法体内接收到的是类及子类
public static boolean test1(Set<? extends BaseDO> bean){...
说明:方法体内接收到的是类及子类的集合,从集合中取子类需要强转,取父类直接用
public static boolean test2(Set<? super BaseDO> bean){...
说明:方法体内接收到的是类及超类的集合,从集合中取出对象,再强转使用
3、类参数
public static <K, V> V convertBean(K source, Class<V> v) {
V target = v.newInstance(); //等价于实例化一个对象
...
}
调用:ConvertUtils.convertBean(AVO, ADO.class);
说明:需要把参数中使用的通配符声明一下,通配符用法如下:
a) T (type) 表示具体的一个java类型
b) K V (key value) 分别代表java键值中的Key Value
c) E (element) 代表Element
4、无参数泛型
public <T> QueryWrapper<T> getWrapper(int tenantCode) {
...
return new QueryWrapper<T>();
}
调用:CommonUtils.<ADO>getWrapper(1);
说明:参数中不传递返回值需要的类型,而在调用方法前指明类型