有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java附加到Kotlin数据类ArrayList

我准备在运行Kotlin 1.2.51版的Android应用程序中使用以下data class

data class Data(var a: ArrayList<String>, var b: String)

如您所见,a是一个ArrayList。我想将另一个数组中的元素附加到a。我试过这个:

itemsToAppend.forEach {
    Data.a.add(it)
}

但是,Android Studio确定a是一个未解析的引用。一个人究竟如何将一个项目附加到这样的ArrayList

谢谢


共 (3) 个答案

  1. # 1 楼答案

    如果您想访问静态列表,请执行以下操作:

    data class D(var a: ArrayList<String>) { // a can't be used as D.a
       companion object {
          var ab: ArrayList<String> = ArrayList() // ab can be used as D.ab
       }
    }
    
  2. # 2 楼答案

    创建数据实例:

    var a: ArrayList<String> = arrayListOf()
    var data = Data(a, "something")
    

    并在循环中使用data

  3. # 3 楼答案

    数据类不是对象类。您必须先初始化它们,然后才能使用它

    val d= Data(ArrayList(), "demo")
    itemsToAppend.forEach {
        d.a.add(it)
    }