在一些简单的斯卡拉编码练习期间,我遇到了案例类的意识形态问题,没有参数和构造函数参数重复。案例类没有参数替代
这一切都始于以下两种完全简单的类:
trait Namespace
case class Reply[T](namespace: Namespace, correlation: String, data: Try[T])
abstract class Request(val namespace: Namespace, val id: String = UUID.randomUUID().toString) {
def success[T](data: T) = Reply(namespace, id, Try(data))
def failure(msg: String) = Reply(namespace, id, Failure(new RuntimeException(msg)))
}
现在让我们假设我有一个实体Post
,我想补充All
类作为命令查询类型的所有记录Post
。在我的当前设置会更容易实际编写如下:
case class All extends Request(Posts)
然而,在这种情况下,我得到的编译器警告说,如果不带参数case类已被弃用。因此,人们可能会建议将其改写成如下:
case object All extends Request(Posts)
然而,在这种情况下,所有的对象将其id
字段,它想避免其为每个请求唯一的ID一起一次被实例化。
可否请你建议代表,使其将不需要复制构造函数的参数All
命令的更好的办法?
在此先感谢?
非常感谢您的回答 – tkachuko