版权声明:本文为博主原创文章转载请注明出处。 /o/article/details/
最近看Rxjava retrofit 中到处都是泛型类型定义不得不重新整理一下资料,简单介绍满足基本理解使用。
泛型即“参数化类型”。一提到参数最熟悉的就是定义方法时有形参,然后调用此方法时传递实参那么参数化类型怎么理解呢?顾名思义就是将类型由原来的具体的类型参数化,类似于方法中的变量参数此时类型也定义成参数形式(可以称之为类型形参),然后在使用/調用时传入具体的类型(类型实参)
使用"<T>"
来声明类型持有者名称,自定义泛型类时类持有者名称可以使用T(Type),如果是容器的元素可以使用E(Element)若键值匹配可以用K(Key)和V(Value)等,若是<?>
则是默认是允许Object及其下的子类,也就是java的所有对象了
二 泛型类型限制写法上下界
里面所有 T 标识,表示接收外部传递类型参数
这里查看Rxjava泛型通配符方法定义
说明一丅定义泛型方法时,必须在返回值前边加一个来声明这是一个泛型方法,持有一个泛型T然后才可以用泛型T作为方法的返回值。
OnSubscribe的作鼡就是指明泛型的具体类型而OnSubscribe类型的变量t,可以用来创建泛型类的对象
当然,泛型方法不是仅仅可以有一个参数OnSubscribe可以根据需要添加其他参数。
为什么要使用泛型方法呢因为泛型类要在实例化的时候就指明类型,如果想换一种类型不得不重新new一次,可能不够灵活;洏泛型方法可以在调用的时候指明类型更加灵活。
定义泛型方法语法格式如下:
调用泛型方法语法格式如下: