我有以下类结构。CarModel类具有CarDefects类型的缺陷列表。我想把CarDefects类的实例添加到这个carModel的缺陷列表中,这个列表作为CarDefections构造函数的参数传递
但是,我不能使用add方法,错误消息显示如下:未解决的引用:添加
class CarModel(val brand: Brand, val modelName: String, val version: Int){
var defects: List<CarDefects>? = null
inner class Car(val model: CarModel, val manufactureYear: Int, val engineSerialNum: String){
}
inner class CarDefects(var carModel: CarModel, val affectedYears: Array<Int>, val defectCode: String ) {
init{
carModel.defects.add(//instance of this class)
}
}
}
您有一个List作为defects
的类型。List
是不可变的,所以你不能向它添加更多的元素。你需要使用mutableList
才能做到这一点。
这里你有更多关于这个的信息
元素的通用有序集合。此接口中的方法仅支持对列表的只读访问;通过MutableList接口支持读/写访问。
或者,您可以尝试创建一个新的可变列表,每次都添加它,然后转换为列表。像这样的东西。
defects = defects?.toMutableList()?.add(//your car instance).toList()