【发布时间】:2022-01-19 13:12:46
【问题描述】:
我的代码为我正在使用的字段包装了一些预期类型。我想转换为抽象类。
sealed trait SJValue
case class SJDouble(value: Double) extends SJValue {
def toValue: Double = value
}
case class SJInt(value: Int) extends SJValue {
def toValue: Int = value
}
case class SJString(value: String) extends SJValue {
def toValue: Double = value
}
case class SJBoolean(value: Boolean) extends SJValue {
def toValue: Boolean = value
}
我觉得我可以做这样的事情来摆脱重复的 toValue 类,但我不太清楚如何:
abstract class SJValue[T <: ???](value: T) { toValue : T }
如您所见,我将其视为 Int、String、Double 和 Boolean 的 or 类型,所以我不确定实际的类型约束是什么,因为 Any 太宽泛了。
【问题讨论】:
-
如果将 T 设为密封,为什么还需要类型约束?
标签: scala