以下のメソッドでは、 にfrom
とto
の型が同じ型のLexicalDateであるように関数の型を設定したいと考えていました。私。両方ともDay
であるか、両方ともHour
である必要があります。多型パラメーターを同じ型にすることを強制する
現在、from
とto
は異なる種類のLexicalDateとして渡すことができます。
from
とto
はコンパイルレベルで強制的に同じタイプのLexicalDate
にすることができますか?あなたが探しているものを
sealed trait LexicalDate
case object Day extends LexicalDate
case object Hour extends LexicalDate
def queryDate[Date <: LexicalDate](
id: Long,
from: Date,
to: Date
)
。あなたがこれを必要とする唯一の時間は、実装が[Liskov Substitution Principle](http://www.oodesign.com/liskov-s-substitution-principle.html)(私が思う)を破り、お互いに。興味深い考え。 – byxor
あなたの質問は何ですか?ところで、あなたの宣言は 'CaseオブジェクトHourはLexicalDateを拡張する' 'Case objects Hour extends'だけではなく、あなたの問題であったのですか?) –