在代码中,如果定义了非空实例字段(即使用了“lateinit”和“val”修饰符),则需要在使用前先进行初始化。否则会出现编译时错误“Non-nullable instance field 'xxxx' must be initialized”。
例如,在以下代码中使用了非空实例字段“groupCreated”,但没有进行初始化,因此会出现以上错误:
class Group { lateinit val groupCreated: String
fun createGroup(name: String) {
// 创建群组
groupCreated = name // 这里会提示错误
}
}
为了解决这个问题,我们需要在定义时就进行初始化,或者在使用前进行初始化。
一种解决方法是,在定义时就进行初始化:
class Group { val groupCreated: String = "" // 在这里进行初始化
fun createGroup(name: String) {
// 创建群组
groupCreated = name
}
}
另一种解决方法是,在使用前进行初始化:
class Group { lateinit val groupCreated: String
fun createGroup(name: String) {
// 创建群组
groupCreated = name // 在这里进行初始化
}
}