【问题标题】:Why am I able to have null values in non-null variables?为什么我可以在非空变量中使用空值?
【发布时间】:2023-02-04 01:22:08
【问题描述】:

这是我的科特林课程:

class Test{
    val x: String = run {
        y
    }

    val y: String = run {
        x
    }
}

变量 x 和 y 最终都为 null,尽管它们被声明为不可为 null 的字符串。

你可以运行它here。如您所见,尝试调用 x 或 y 上的方法时会出现空指针异常。

为什么这是可能的?考虑到这一点,你怎么能真正拥有空安全呢?

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    根据 Kotlin 文档,“初始化方面的数据不一致”可能会导致 NullPointerException。

    以下是有关该主题的几个链接:

    https://kotlinlang.org/docs/null-safety.html#nullable-types-and-non-null-types

    https://kotlinlang.org/docs/inheritance.html#derived-class-initialization-order

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2015-09-05
      • 1970-01-01
      相关资源
      最近更新 更多