private var tableNumber: Int
Property must be initialized or be abstract
'lateinit' modifier is not allowed on properties of primitive types
要么您必须直接初始化它,比如:
private var tableNumber: Int = 0
或者,如果您希望能够检查是否设置了该值,您可以将其设置为可选的(仍然需要对其进行初始化):
private var tableNumber: Int? = null
把它抽象起来是没有意义的。
这肯定是个愚蠢的问题,但我对Kotlin真的是个新手,我没有找到任何解决办法。 如何声明类字段?就像我们可以在Java中拥有它一样: 在中: 但我得到一个警告:“属性必须初始化或抽象”
问题内容: 为什么Kotlin对此抱怨: 编译器抱怨在Line中由处理程序再次发布。这在纯Java中确实有效: 问题答案: Kotlin认为一个属性在其初始化程序结束之前尚未初始化,因此即使在lambda中也无法在其自己的初始化程序中使用该属性。这种语义类似于其初始化程序内部局部变量使用的限制。 有几种解决方法: 使用对象表达式可以引用已声明的对象: } 这仅适用于接口作为lambda的替代品,并
问题内容: 定义 类属性和 初始化 它们之间有区别吗?在某些情况下,您想彼此做一个吗? 例: 以下代码段应指出我的意思。我在那里使用一个原语和一个对象: 与 问题答案: 首先,您不能将原语设置为null,因为原语只是数据,其中是对象引用。如果尝试编译,则会收到不兼容的类型错误。 其次,像在Java中那样,在类中将变量初始化为或在类中声明变量时是多余的,原语默认为(或),对象引用默认为。局部变量不是
我在想,是否可以使用对< code>this关键字的引用来初始化一个(引用类型)属性(当它的值为< code>null),而不使用构造函数。< br >在某些情况下,我不想使用构造函数来初始化属性,因此,如果没有人访问它,它的值将不会被创建。< br >此外,如果可能的话,我不喜欢在构造函数中将属性声明与其初始化分开。 一个典型的例子是MVVM模式编程的命令声明: 我不喜欢写三倍的成员的名字… 我
但是我得到错误“在初始化之前使用属性”这是有道理的,因为我只声明。但是我不知道我应该如何或为了什么初始化输入,因为值是输入
问题内容: 我这里有一个与Java有关的简单问题。假设您有一个int数组作为实例变量: 因此,现在默认情况下它包含5个零。但是,如果您具有与局部变量相同的数组,该怎么办。它是否初始化为零?那不是家庭作业,我正在学习Java语言。最好的祝福 问题答案: 首先 要了解的是, 局部变量 存储在 堆栈中 ,它们没有使用其默认值进行显式初始化。尽管 实例变量 存储在 Heap上 ,并且默认情况下会使用 默认