Scala:复制具有特质的病例类
发布时间:2020-12-16 19:08:47 所属栏目:安全 来源:网络整理
导读:我对 Scala很新,我有一个关于复制病例类的最佳方式的问题,同时保留来自特征的数据.例如,假设我有以下几点: trait Auditing { var createTime: Timestamp = new Timestamp(System.currentTimeMillis)}case class User(val userName: String,val email: Strin
我对
Scala很新,我有一个关于复制病例类的最佳方式的问题,同时保留来自特征的数据.例如,假设我有以下几点:
trait Auditing { var createTime: Timestamp = new Timestamp(System.currentTimeMillis) } case class User(val userName: String,val email: String) extends Auditing val user = User("Joe","joe@blah.com") 然后我想要修改一个参数的新副本: val user2 = user.copy(email = "joe@newemail.com") 现在,在上面的例子中,属性createTime不会被复制,因为它没有在User case类的构造函数中定义.所以我的问题是:假设将createTime移动到构造函数中是不可行的,那么获取包含该特征值的User对象副本的最佳方式是什么? 我正在使用Scala 2.9.1 提前致谢! 解决方法
您可以使用该行为覆盖复制方法.
case class User(val userName: String,val email: String) extends Auditing { def copy(userName = this.userName,email = this.email) { val copiedUser = User(userName,email) copiedUser.createTime = createTime copiedUser } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |