我已经定义了以下类层次结构,我想将类型参数限制为符合Double
...
sealed abstract class Quantity[-T](value: T)(implicit ev: T <:< Double)
case class DiscreteQuantity(value: Long) extends Quantity[Long](value)
case class ContinuousQuantity(value: Double) extends Quantity[Double](value)
...是否可以重写上述层次结构,以便具体类型是值类?从文档中我知道值类无法扩展,因此排除了Quantity
继承自AnyVal
. 为了从具体类继承,AnyVal
我需要创建Quantity
一个特征,这很好,但是我丢失了类型参数上的逆变注释。
想法?