Vas*_*Vas 2 inheritance kotlin
从Java类继承的Kotlin类是否也继承自Any?
如果我们有一个Java类Foo,以及一个继承自Foo的Kotlin类Bar,并且我们试图在Kotlin的MutableList中使用它,那么下面的工作应该如何呢?
class Class(items: MutableList<Bar> = mutableListOf()) {
var items: MutableList<Any> = items
}
Run Code Online (Sandbox Code Playgroud)
是.Any是一个对应的映射类型java.lang.Object(它是所有Java类的超类型),因此,基本上,每个Java类都是从Kotlin看作的子类型Any.该something is Any检查始终是两个科特林和Java类型真实的,只要something是非空.
实际上,Any是由所代表 java.lang.Object的JVM平台上:
println(Any::class.qualifiedName) // kotlin.Any
println(Any::class.jvmName) // java.lang.Object
Run Code Online (Sandbox Code Playgroud)