【发布时间】:2013-06-26 05:35:25
【问题描述】:
对于具有参数数量的scala案例类(21!!)
例如case class Car(type: String, brand: String, door: Int ....)
其中 type = jeep, brand = toyota, door = 4 ....etc
还有一个复制方法允许使用命名参数覆盖:Car.copy(brand = Kia)
哪里会变成 type = jeep, brand = Kia, door = 2...等
我的问题是,我是否可以动态提供命名参数?
def copyCar(key: String, name: String) = {
Car.copy("key" = "name") // this is something I make up and want to see if would work
}
scala 反射库可以在这里提供帮助吗?
我使用复制方法的原因是我不想每次创建一个只更改了 1 或 2 个参数的案例类时都重复 21 个参数分配。
非常感谢!
【问题讨论】:
-
我不明白为什么
copy命令还没有完全满足您的需求。为什么要动态提供参数? -
@RexKerr 我可以看到:他得到了一个(名称,值)对的映射,然后想用它调用
Car.copy()。您的方式会将其全部硬编码为特定参数。
标签: scala