我有一个抽象类,我扩展并创建了大量的case类.现在我想复制那些只更改第一个参数的案例类的实例,所以我使用case类的copy方法.
因为我必须为从公共抽象类扩展的所有案例类执行此操作,而不是为所有案例类执行此操作,所以我尝试将其设置为通用,并使抽象类成为案例类.
然后Scala给了我这个:
案例类八达通有案例祖先有机体,但禁止个案继承.要克服此限制,请使用提取器在非叶节点上进行模式匹配.
码:
abstract class Organism(legs: Int)
case class Octopus(override val legs: Int, weight: Double, ...)
case class Frog(override val legs: Int, ...)
def clone(o: Organism) = o.copy(legs = -1)
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的.但是,如果我不能使该clone方法工作,那么我将不得不复制两个Octopus&Frog.
任何建议,以减少这种冗长?
scala ×1