我的Scala代码遵循以下模式。
class T
class A1[S <: T](private val arg1: String, private val arg2: S)
class A2[S <: T](private val arg1: String, private val arg2: S)
extends A1[S]
class A3[S <: T](private val arg1: String, private val arg2: S)
extends A2[S]
等
我希望有一些方法可以缩短上面的代码,因为这里有很多重复。我希望A1
的子类隐式具有类型参数化[S <: T]
和构造函数(private val arg1: String, private val arg2: S)
。有没有办法实现这一点,还是有必要为我定义的每个子类重复这个文本?
答案 0 :(得分:0)
您可以用A1
替换A2
,A3
和AImpl
吗?
sealed trait Condition
case object One extends Condition
case object Two extends Condition
case object Three extends Condition
sealed trait AParent[A]
case class AImpl[A, B <: A](private val arg1: String,
private val arg2: B,
c: Condition) extends AParent[A]