[英]Type parametrization and inheritance in Scala
我有遵循以下模式的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)
。 有什么方法可以完成此操作,還是必須為我定義的每個子類重復此文本?
您可以用單個AImpl
替換A1
, A2
和A3
嗎?
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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.