Код не будет компилироваться без ключевого слова match
, как показано ниже:
def adjust[P <: Policy](p: P, d: Discount) = p match {
case ap: AutoPolicy => new AutoPolicy
case lp: LifePolicy => new LifePolicy
}
Если бы было намерение определить PartialFunction
(что кажется маловероятным), у него была бы другая подпись:
def adjust[P <: Policy](p: P, d: Discount): PartialFunction[P, _] = {
case ap: AutoPolicy => new AutoPolicy
case lp: LifePolicy => new LifePolicy
// ...
}