重识Java泛型

补充

显式类型声明

举个例子,以下是RxLifecycle的一个使用

其中 this.bindUntilEvent(ActivityEvent.PAUSE))就用到了泛型的显式转换

忽略类型不安全的警告

@SuppressWarnings("unchecked")

有了这个注解编译的时候会忽略类型安全的异常警告

举个例子

与操作&在泛型中的使用

调用该方法入参需要同时满足实现Cloneable接口和Comparable接口

泛型实现异构容器

不像普通的map,它的所有健都是不同类型,每个健都可以有一个不同的参数化类型,比如Class, Class

泛型的使用思维

泛型是用来传递对象类型,像是从管道里滑一遍出来

在封装的时候,我们通常不知道泛型实参类型,因此无法使用对应的方法,如果要使用,有几种办法:

引入泛型上界,使用限定对象的能力

instanceof

泛型能规整参数的位置关系

是否需要给泛型类里的泛型方法增加协变的能力

Java泛型实战

RxJava代码库中的泛型

Rxlifecycle代码库中的泛型

BaseRecyclerViewAdapterHelper(https://github.com/CymChad/BaseRecyclerViewAdapterHelper)

上述代码库大量使用了泛型,可以阅读

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180106G010V200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券