Java泛型的使用

版本: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);

说明:参数中不传递返回值需要的类型,而在调用方法前指明类型

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 泛型技术在C#和Java之中的使用方式看似相同,但实现上却有着根本性的分歧,C#里面泛型无论在程序源码中、编译后的...
    zx_tree阅读 155评论 0 0
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,045评论 0 3
  • 泛型的概念 泛型,本质是参数化类型,这个概念在程序设计里面很经常可以看到,泛型的使用很灵活而且高效,它允许程序员将...
    MarcoHorse阅读 259评论 0 0
  • 本文旨在为完全不懂泛型,但是感觉泛型很神奇,想试一试的小伙伴使用,没有过于深入挖掘原理,文章相对肤浅。不喜勿喷哦。...
    吾乃韩小呆阅读 1,306评论 0 2
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Java基...
    济公大将阅读 1,546评论 1 6