Android Why intent.getParcelableExtra don';是否在kotlin中返回可为null的类型?

Android Why intent.getParcelableExtra don';是否在kotlin中返回可为null的类型?,android,kotlin,Android,Kotlin,我有一个从intent中提取数据的示例 val screen = intent.getParcelableExtra<Screen>("screen") val screen=intent.getParcelableExtra(“screen”) 我收到的结果是一个不可为null的变量,但它可以为null,因为我不知道该包裹是否已添加到extras。为什么kotlin不返回可为null的类型?kotlin只调用java中android SDK中定义的getParcelableEx

我有一个从intent中提取数据的示例

val screen = intent.getParcelableExtra<Screen>("screen")
val screen=intent.getParcelableExtra(“screen”)

我收到的结果是一个不可为null的变量,但它可以为null,因为我不知道该包裹是否已添加到extras。为什么kotlin不返回可为null的类型?

kotlin只调用java中android SDK中定义的
getParcelableExtra()
。此方法没有使用
@Nullable
注释,因此kotlin不知道它可能返回null

另见:

可空性注释
具有nullability注释的Java类型 不是表示为平台类型,而是表示为实际可为null或 非空Kotlin类型。编译器支持多种风格的 可空性批注,包括:

  • JetBrains(@Nullable和@NotNull来自org.JetBrains.annotations 包装)
  • Android(com.Android.annotations和Android.support.annotations)
在代码中

通过显式指定类型,Kotlin将为您提供所有您习惯的编译时空安全性

val screen = intent.getParcelableExtra<Screen>("screen")
val screen: Screen? = intent.getParcelableExtra<Screen>("screen")