ジェネリクス型を継承ときに、継承したクラスで親のジェネリクス型を記述できないかと思ったのですが、以下のように記述してもコンパイルエラーになってしまいました。
class Foo<T> {
}
class Bar : Foo<Int> {
}
以下コンパイルエラー文です。
Classes derived from generic classes must also be generic
継承したクラスでもジェネリクスを定義する必要があります。
class Foo<T> {
}
class Bar<T>: Foo<T> {
}
毎回ジェネリクス型を明示するのが面倒な場合はtypealias
で定義してエイリアスで記述することもできます。
typealias BarClass = Bar<Int>