0
価格がSeqValueの属性値を見つけることができないのはなぜですか?それはうまくいくはずです。スカラ上限:値がパラメータ型のメンバではありません
イム次のコード
sealed trait SeqValue {
def seq:Int
def value:Float
override def toString = ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE)
}
sealed trait Calc {
type S <: SeqValue
def recalc[S](input:S):SeqValue
}
case class Price(seq:Int=0, value:Float=.0f) extends SeqValue with Calc {
def recalc[SeqValue](input:SeqValue) = Price(1 + seq, input.value)
}
のエラー
[error] .... value value is not a member of type parameter SeqValue
[error] def recalc[SeqValue](input:SeqValue) = Price(1 + seq, input.value)
を取得
アイデアは、あなたがあるため、価格のオブジェクトに再計算し、SeqValueを実装するオブジェクトのいずれかのタイプに渡すことができるということですSeqValueには値があります。
ありがとうございます! Calcを実装するクラスがたくさんあります。クラス/特性を再定義して、すべてのクラスに 'S = SeqValue'型を追加する必要がないようにする方法がありますか? – George
実際には、class Priceは抽象である必要があります。[エラー]ケースクラス価格(seq:Int = 0、値:Float = .0f)SeqValueをCalcで延長する ' – George
@George、チェック編集。 – missingfaktor