Wie wir wissen, ist die Liste in Kotlin unveränderlich, d. H. Sie können nicht wie unten hinzufügen und entfernen.Kotlin: Ändern (unveränderbar) Liste durch Cast, ist es legitim?
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
myList!!.add(10)
myList!!.remove(10)
}
}
Aber wenn wir es wie unten beschrieben in ArrayList umwandeln, funktioniert das Hinzufügen und Entfernen.
Ich dachte nur, das ist seltsam, wie myList wirklich eine Liste ist, die unveränderlich sein soll. Und gießen Sie es, lassen Sie es geändert werden.
, was oben ist zu tun (Gießen Array und ändern Sie den Inhalt) legitim, die Sprache muß das nicht zulassen verbessern?
Mögliches Duplikat von [Kotlin und Immutable Collections?] (Http://stackoverflow.com/questions/33727657/kotlin-and-immutable-collections) –
Der angebotene Link erklärt, dass List nicht unveränderbar, aber lesbar ist. Aber dann ist "lesbar" wirklich nicht so "nützlich", da es immer noch geändert werden könnte.Im Idealfall sollte 'lesbar' nicht zu etwas 'schreibbar' umgewandelt werden. – Elye
Es reicht, nach 'MutableList' zu transformieren, ein Super-Typ von' ArrayList' – voddan