La función de copia de clase de datos de Kotlin no funciona

Tal vez estoy malinterpretando cómo elcopy función de undata la clase funciona o tal vez hay un error, pero el siguiente es un ejemplo decopy La función no funciona como se esperaba:

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
}

Java

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

Parece quecopy solo está haciendo una nueva instancia deA y no copiando los valores. Si pongo las variables en el constructor, los valores se asignan, pero no es diferente a construir una nueva instancia.

Respuestas a la pregunta(3)

Su respuesta a la pregunta