在一些簡單的斯卡拉編碼練習期間,我遇到了案例類的意識形態問題,沒有參數和構造函數參數重複。案例類沒有參數替代
這一切都始於以下兩種完全簡單的類:
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