我试图使用特征作为一个案例类的混合 .
case class Team(name:String) trait WinStreak{}
我想像这样使用它:
val team = Team("name") with WinStreak
显然我不能这样做 . 这是因为案例类使用伴侣对象来创建类的实例吗?我知道另一个解决方案是在我的类def中扩展特性,但我想知道是否可以创建mixin风格 .
因为 Team("name") 实际上是对 Team.apply("name") 的方法调用,它在apply方法中创建对象 .
Team("name")
Team.apply("name")
使用 new 关键字创建对象应该做的诀窍:
new
case class Team(name:String) trait WinStreak{} val x = new Team("name") with WinStreak
1 回答
因为
Team("name")
实际上是对Team.apply("name")
的方法调用,它在apply方法中创建对象 .使用
new
关键字创建对象应该做的诀窍: