Kotlin中List<E>.addAll方法出现“Unresolved reference”未知错误求助
问题原因与解决方案
错误根源
Kotlin里的List是只读集合接口,它仅提供读取集合元素的方法,并没有addAll()这类修改集合内容的方法。你声明的x和y都是List<UserAccount>类型的只读集合,因此调用x.addAll(y)会触发“Unresolved reference”错误。
修正方案
要实现集合元素的添加操作,需要使用可变集合类型MutableList,它提供了所有修改集合的方法:
var x: MutableList<UserAccount> = mutableListOf() var y: MutableList<UserAccount> = mutableListOf() x.addAll(y)
如果业务场景需要保留List的只读引用,也可以先将只读集合转为可变集合完成操作,再转回只读集合:
var x: List<UserAccount> = emptyList() var y: List<UserAccount> = emptyList() // 先转成可变集合执行addAll,再重新赋值给只读List变量 x = x.toMutableList().apply { addAll(y) }
内容的提问来源于stack exchange,提问作者AlanSTACK
相关产品推荐
相关产品推荐

