从Java类继承的Kotlin类是否也继承自Any?
如果我们有一个Java类Foo,以及一个继承自Foo的Kotlin类Bar,并且我们试图在Kotlin的MutableList中使用它,那么下面的工作应该如何?
class Class(items: MutableList<Bar> = mutableListOf()) {
var items: MutableList<Any> = items
}
答案 0 :(得分:5)
是。 Any
是mapped type,对应于java.lang.Object
(这是所有Java类的超类型),因此,基本上,每个Java类都从Kotlin看作{{1}的子类型}。只要Any
非空,something is Any
检查对于Kotlin和Java类型都是正确的。
实际上,something
在Any
表示:
java.lang.Object