谁能解释Kotlin的Any类型和Java的Object之间的关系?
我认为Any是Object的子类型。但这似乎是不正确的。
这里有来自源的Any类:
public open class Any {...}
以反编译形式显示以下代码:
fun main(args: Array<String>) {
val x: Any = Object()
println(x)
}
表示为:
public static final void main(@NotNull String[] args) {
Intrinsics.checkParameterIsNotNull(args, "args");
Object x = new Object();
System.out.println(x);
}
最终代码中没有任何内容。
此外,以某种方式无法在Any上调用某些Object的方法。例如:没有等待,通知,notifyAll。
此Any最终如何被Object取代,以及为什么限制Object类型的签名?