Kotlin碎片解析————泛型
泛型的out、in、where
kotlin语言作为android生态中的一个重要一环,也承继了部分java的特效,譬如这个——泛型。作为一种编译时期的特性,泛型很大程度把类型转换错误这个问题解决了。
在kotlin语言中,泛型依然适用,同时也保留了java泛型中的上下界特性。
out
out可以看成java泛型中的上界通配符,简单理解就是就是这个泛型之下的子类都使用于当下:
1 | val a: A<View> = A<TextView>() |
需要注意的是,out只能应用于类或者接口,在方法上是无法应用的
in
相应地,in可以看作java泛型中的下界通配符,就是这个类型就是下限了,往上都是可以的
1 | val a: A<TextView> = A<View>() |
与out相同,in不能作用于方法
where
限定多个上界
1 | class A<T> where T : Button,T : Serializable{} |
where可作用于类或者函数
##以上