我发现自己写了很多(有点)样板代码。例如,假设我有以下特征:
trait Foo {
def x: Int
}
trait Bar {
def y: Boolean
def z: String
}
我想要一个案例类,它不多也不少地实现这些功能。
case class MyClass(x: Int, y: Boolean, z: String) extends Foo with Bar
这看起来并不烦人,但现在想象一下,如果我的特征有十几个def
,而且名称x
,y
和z
更长。编写case class意味着我必须将它们全部重写为MyClass
的参数。
是否有一种方法可以根据我扩展的特征自动生成x: Int, y: Boolean, z: String
构造函数部分?
val
而不是def
,这有什么帮助吗? - Alec