What is out keyword in kotlin

List<out T> in Kotlin is equivalent to List<? extends T> in Java.

List<in T> in Kotlin is equivalent to List<? super T> in Java

For example in Kotlin you can do things like

val value : List<Any> = listOf(1,2,3)
//since List signature is List<out T> in Kotlin

The reasoning is you can mark generic “out” if you returning it, but never receiving. And you can mark it “in” if you receive it, but never return.

Leave a Comment