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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage