【问题标题】:Int -> Property must be initialized or be abstractInt -> 属性必须被初始化或者是抽象的
【发布时间】:2019-11-15 20:44:24
【问题描述】:

Android Studio 3.6

在 Kotlin 中我试试这个:

private var tableNumber: Int

但得到编译错误:

Property must be initialized or be abstract

这个属性我稍后会初始化。我不能使用lateinit,因为我得到另一个错误:

'lateinit' modifier is not allowed on properties of primitive types

【问题讨论】:

标签: android kotlin


【解决方案1】:

要么你必须像这样直接初始化它:

private var tableNumber: Int = 0

或者如果您希望能够检查该值是否已设置,您可以将其设为可选(仍然需要对其进行初始化):

private var tableNumber: Int? = null

把它抽象化是没有意义的。

【讨论】:

    【解决方案2】:

    您必须使用默认值初始化属性,例如

    private var tableNumber: Int = 0
    

    或者把它抽象化

    private abstract var tableNumber: Int
    

    这些是不同的东西,所以请考虑在这里选择什么......

    【讨论】:

      猜你喜欢
      • 2016-02-24
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      相关资源
      最近更新 更多