【发布时间】:2015-02-20 02:36:54
【问题描述】:
也许我误解了data 类的copy 函数的工作原理,或者可能存在错误,但以下是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
}
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
似乎copy 只是创建A 的新实例,而不是复制值。如果我将变量放在构造函数中,则赋值,但这与构造一个新实例没有什么不同。
【问题讨论】:
标签: java kotlin data-class