任何人都可以解释为什么在Kotlin这样做是不可能的?
val x :Int? = 123
val y :Any = x
Run Code Online (Sandbox Code Playgroud)
我来自.NET背景,其中Nullable类型可分配给Object类型,但它们有何不同?
可空类型不是子类型Any,但它们是子类型Any?.
Any只是一个非可空类型的超类.这使得编写需要任何东西的非null实例的代码成为可能,并且仍然可以从类型检查器的安全性中受益(与使用Java时不同Object).
这是一个可以帮助的图像:
以下代码是您的有效替代品:
val x: Int? = 123
val y: Any? = x
Run Code Online (Sandbox Code Playgroud)