我无法在Android中的类中初始化我的数组(MutableList)

我刚刚开始与Kotlin和Android工作室。 当在MainActivity.kt我做以下…

 var tafels: MutableList<MutableList> = java.util.ArrayList() tafels.add(mutableListOf(2, 2, 4)) 

一切工作正常。 我可以添加元素到这个ArrayList ,如图所示。

当我尝试在一个新文件中做同样的事情时,在我创建的类中,但是,当我输入时,代码帮助无法识别tafels ,因此在键入tafels之后没有任何建议:

 class TafelsSommen(){ var tafels: MutableList<MutableList> = java.util.ArrayList() tafels.add(mutableListOf(2, 2, 4)) } 

为什么我不能将元素添加到tafels类中的TafelsSommen

首先,你可以使用标准的库函数来创建你的列表。 以下是types安全的,而你的不是因为ArrayList没有指定它的types参数。

 val tafels: MutableList> = mutableListOf(mutableListOf(2, 2, 4)) 

你正试图调用代码,在这里添加一个元素来列出,在类的主体。 这不起作用。 将它包装到一个init块中,或者将它添加到属性声明中:

 class TafelsSommen() { val tafels: MutableList> = mutableListOf(mutableListOf()) init { tafels.add(mutableListOf(2, 2, 4)) } } 

再次, 这里是如何构建一个类:

“类可以包含”:

  • 构造函数和初始化块
  • function
  • 属性
  • 嵌套和内部类
  • 对象声明

没有像你的声明允许。