提到Kotlin泛型不得不说到这两个关键字:in(逆变)和out(协变),字面意思上就是in表示这个参数/变量只能用来输入,不能读取;out就反过来,只能用来输出,不能读取。
out(协变型)
这就是典型的生产者类接口,主要用来生产通用的类型的输出,我们就记住 (生产=输出=out)
使用了out关键字,我们可以将子类型的类分配给超类型的类
in(逆变型)
如果我们的泛型类仅使用泛型类型作为函数的输入,那么就使用in
这就是典型的消费者类接口,主要使用的都是泛型类型,我们就记住 (消费=输入=in)
使用了in关键字,我们可以将超类型的类分配给子类型的类