Kotlin-Datenklassen-Kopierfunktion funktioniert nicht
Vielleicht bin ich falsch interpretiert, wie diecopy
Funktion einesdata
class funktioniert oder vielleicht gibt es einen Fehler, aber das folgende Beispiel zeigt dascopy
Funktion funktioniert nicht wie erwartet:
Kotlin:
data class A {
public var x: String? = null
public var y: String? = null
public var z: B = B.ONE
}
enum class B {
ONE
TWO
THREE
}
Jav
A a1 = new A()
a1.setX("Hello")
a1.setY("World")
a1.setZ(B.TWO)
A a2 = a1.copy()
// a2.x is null
// a2.y is null
// a2.z is B.ONE
Es scheint, dasscopy
erstellt nur eine neue Instanz vonA
und die Werte nicht kopieren. Wenn ich die Variablen in den Konstruktor lege, werden die Werte zugewiesen, aber das ist nichts anderes als das Erstellen einer neuen Instanz.