为什么Java ArrayList与Kotlins List接口兼容

gue*_*ter 6 kotlin

为什么这样做

val foo: kotlin.collections.List<String> = java.util.ArrayList()
Run Code Online (Sandbox Code Playgroud)

ArrayList不是继承Kotlin List,是吗?

hot*_*key 6

这是因为kotlin.collections.List,在其他类型中, 是映射类型:在 JVM 编译期间,它的用法被编译为 Javajava.util.List接口的相应用法。