この関数がコンパイルされないのはなぜですか?
case class MyType(n: Int)
def intersection(s1: Set[MyType], s2: Set[_ <: MyType]) =
(s1 & s2)
次のエラーが表示されます。
エラー: タイプが一致しません。found : Set[_$1] where type _$1 <: MyType 必須: scala.collection.GenSet[MyType] 注: _$1 <: MyType ですが、特性 GenSet は型 A で不変です。として
_ <: MyType
。(SLS 3.2.10) (w & r)
asInstanceOf を使用せずに Set[MyType] 型に 2 番目の引数を「昇格」する簡単な方法はありますか?