scala 自动调用 case class 的构造函数,除了一个字段以外的所有字段
scala call constructor of case class with all fields except one automatically
我很好奇如何调用 scala case class 的构造函数及其所有字段(自动)
case class MyClass(a:String, b:Int, c:String)
val myThing = MyClass("a", 1, "b")
MyClass("someOtherValue", myThing.getAllTheValuesExceptOne: _*)
之类的东西对我还不起作用。
您可以使用案例 classes 的 copy
方法,它允许基于其他覆盖某些特定字段的案例创建案例 class。
case class MyClass(a:String, b:Int, c:String)
val myThing = MyClass("a", 1, "b")
val myThing2 = myThing.copy(a = "someOtherValue")
另一种选择是使用 apply 方法创建伴生对象。
object MyClass {
def apply(a: String) = {
new MyClass(a, 1, "AAA")
}
}
那你就可以用
val newInstance = MyClass("BBB")
我很好奇如何调用 scala case class 的构造函数及其所有字段(自动)
case class MyClass(a:String, b:Int, c:String)
val myThing = MyClass("a", 1, "b")
MyClass("someOtherValue", myThing.getAllTheValuesExceptOne: _*)
之类的东西对我还不起作用。
您可以使用案例 classes 的 copy
方法,它允许基于其他覆盖某些特定字段的案例创建案例 class。
case class MyClass(a:String, b:Int, c:String)
val myThing = MyClass("a", 1, "b")
val myThing2 = myThing.copy(a = "someOtherValue")
另一种选择是使用 apply 方法创建伴生对象。
object MyClass {
def apply(a: String) = {
new MyClass(a, 1, "AAA")
}
}
那你就可以用
val newInstance = MyClass("BBB")