你们中的一些人可以帮助我解决这个小问题吗?我对Kotlin和Android开发非常陌生!我不明白为什么这段代码会向我返回以下错误:
class Catalog {
var musicList: List<Music> = ArrayList()
}
class Music{
var id: String = ""
}
fun main(args: Array<String>) {
var test: Catalog
test.musicList[0] = "1"
}
错误:
Variable 'test' must be initialized
怎么了?谢谢大家!
您需要在调用musicList
的getter之前实例化它:
fun main(args: Array<String>) {
var test = Catalog()
test.musicList[0] = "1"
}
此外,如果您不重新分配test
的值,则可以将其声明为val
:
fun main(args: Array<String>) {
val test = Catalog()
test.musicList[0] = "1"
}
此后您将还有其他2个错误:
List
是不可变的,所以您不能使用运算符[]
来分配值要解决它,您可以使用MutableList
代替List
。
class Catalog {
val musicList = mutableListOf<Music>()
}
fun main(args: Array<String>) {
var test = Catalog()
test.musicList += Music("1")
}
在Kotlin中,您可以通过两种方式初始化变量。
在您不使用lateinit的情况下,您需要使用默认值初始化变量
var test = Catalog()
或者如果您想初始化为null
var test:Catalog? = null