私が持っているとしましょう:
class Class[CC[A, B]]
class Thing[A, B <: Int]
class Test extends Class[Thing] // compile error here
コンパイラ エラーが発生します。
型引数 (cspsolver.Thing) の種類が、クラス クラスの型パラメーター (CC 型) の期待される種類に準拠していません。cspsolver.
Thing の型パラメーターが型 CC の予期されるパラメーターと一致しません: 型 C の境界 <: Int は型 B の宣言された境界よりも厳密です >: なし <: 任意
ただし、コードを次のように変更すると、次のようになります。
class Class[CC[A, B]]
class Thing[A, B] {
type B <: Int
}
class Test extends Class[Thing]
それはうまくコンパイルされます。どちらも機能的に同等ではありませんか?