我有许多格式为的案例类
case class Cluster (id: Pk[Long],
foo: Long,
bar: String,
env: String,
name: String,
deleted: Boolean = false) {
def delete() = Cluster(id, foo, bar, env, name, true)
def updateName(name: String) = Cluster(id, foo, bar, env, name, deleted)
def updateFoo(foo: Long) = Cluster(id, foo, bar, env, name, deleted)
}
Run Code Online (Sandbox Code Playgroud)
我试图让我的所有类都不可变,即更新方法正在创建一个新实例.一些类有更多的成员,并且具有克隆自身对象的更新方法具有不同的值,因为tedies容易出错.
有关如何提高效率的任何想法?
你不需要你的方法.你只需要:
val c1 = Cluster(...)
val c2 = c1.copy(env = "new env") // Just list those fields you want to update.
Run Code Online (Sandbox Code Playgroud)
copy()方法可用于"免费"的案例类.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |