TL, DR
У меня есть код Kotlin, в котором элементы добавляются в массив, но в списке не сохраняется новое значение, хотя возвращаемое значение функции показывает измененный список.
Example problem:
/* someList = ["A", "ab"] */
val x = someList.plus("Abc")
Example output:
someList = ["A", "ab"] , x = ["A", "ab", "Abc"]
Полная проблема
Мой код:
class FriendClass{
/* others */
@JsonProperty("messages")
var messages: List<String>? = ArrayList()
}
class DataClass{
/* singleton */
/* others */
@JsonProperty("friend_detail_list")
var friendDetailList: List<FriendClass> = ArrayList()
}
class Adapter{
val a = DataClass.getInstance().friendDetailList[0].messages?.plusElement("Hello")
val b = DataClass.getInstance().friendDetailList[0].messages
val c = DataClass.getInstance().friendDetailList[0].messages?.toMutableList().add("Hello")
val d = DataClass.getInstance().friendDetailList[0].messages
/* printing a, b, c, d */
}
Мой вывод:
messages
уже имел ["a", "bcd", "xfd"] Теперь после печати результаты выглядят следующим образом:
a = ["a", "bcd", "xfd", "Hello"]
b = ["a", "bcd", "xfd"]
a = true
b = ["a", "bcd", "xfd"]
Как сделать, чтобы оригинал messages
обновил его значения вFriendClass