在 Android Studio(Kotlin) 中处理赋值运算符的歧义

Handling Assignment operators ambiguity in Android Studio(Kotlin)

我最近开始在 kotlin 中开发 android 应用程序并遇到了这个问题。 我在 activity 的开头声明了 var employees Arraylist 并分配了 null,稍后我在我的 OnCreate 方法中添加了字符串值。

var employees: ArrayList<String>?= null

现在,当我向它添加值时,出现赋值运算符歧义错误。

在互联网上做了一些研究后,我发现可变列表的 += 操作有两种可能的解释 - 将项目附加到现有列表或通过将新值附加到旧列表来创建新列表列表并将对新列表的引用存储在变量中。 from here

现在我的问题是如何让编译器从一种解释中进行选择以添加到我的可变列表中。

谢谢。

您可以根据自己的需要自行选择一个。

如果您只想将员工添加到 employees:

var employees: ArrayList<String>? = null
employees?.plusAssign("employee")

如果您希望将 employees 分配给包含已添加员工的新 List

var employees: List<String>? = null
employees = employees?.plus("employee")

注意声明之间的区别。但我认为最好只使用 ArrayList:

add() 功能添加员工
var employees: ArrayList<String>? = null
employees?.add("employee")

我认为毕竟没有必要坚持使用赋值运算符,它只是方法调用的一种方便方式:)

如果您使用 val 而不是 var,运算符将按预期工作:

val myArrayList = arrayListOf<String>()

myArrayList += "firstElement" // works fine