具有Mixin特征的Scala案例类

Dan*_*ain 16 scala

我试图将一个特征用作一个案例类的混合.

case class Team(name:String)

trait WinStreak{}
Run Code Online (Sandbox Code Playgroud)

我想像这样使用它:

val team = Team("name") with WinStreak
Run Code Online (Sandbox Code Playgroud)

显然我不能这样做.这是因为案例类使用伴侣对象来创建类的实例吗?我知道另一个解决方案是在我的类def中扩展特性,但我想知道是否有可能创建它的mixin风格.

Bri*_*Hsu 26

因为Team("name")实际上是一个方法调用Team.apply("name"),它在apply方法中创建了对象.

使用new关键字创建对象应该做的诀窍:

case class Team(name:String)
trait WinStreak{}

val x = new Team("name") with WinStreak
Run Code Online (Sandbox Code Playgroud)