Функция копирования класса данных Kotlin не работает
Может быть, я неправильно понимаю, какcopy
функцияdata
класс работает или, возможно, есть ошибка, но ниже приведен примерcopy
функция не работает должным образом:
Котлин:
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
}
Джава
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
Кажется, чтоcopy
просто делает новый экземплярA
и не копировать значения. Если я помещу переменные в конструктор, значения будут назначены, но тогда это ничем не отличается от создания нового экземпляра.