Kotlin中泛型中的<out Any?>和<*>之间的区别

玛蒂·塞拉·莫利纳(Marti Serra Molina)

我不了解<out Any?><*>泛型之间的区别我知道,使用<*>是喜欢做<out Any?><in Nothing>在同一时间,但使用<out Any?>造成同样的结果。

热键

主要区别在于,不能out Any?在声明为反型的类型参数上使用投影(in在声明站点上使用)-所有其使用站点也必须显式或隐式in投影。

此外,对于具有上限的类型参数,T : TUpper不能将out-projection与类型参数一起使用,该参数不是的子类型TUpper例如,如果将类型声明为Foo<T : Number>,则投影Foo<out Any?>无效。out星形投影在的情况下,部分Foo<*>装置的上限,而不是Any?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章