Kotlin で汎用クラスを拡張し、インターフェースを実装する 質問する

Kotlin で汎用クラスを拡張し、インターフェースを実装する 質問する

あるクラスを拡張し、インターフェースを実装する型変数 T が必要だとします。次のようになります。

class Foo <T : Bar implements Baz> { ... }

Kotlin でのこの構文は何ですか?

ベストアンサー1

山括弧内に指定できる上限は 1 つだけです。

Kotlin では、複数の制約がある場合にジェネリック制約に対して異なる構文が提供されます。

class Foo<T>(val t: T) where T : Bar, T : Baz { ... }

関数の場合:

fun <T> f(): Foo where T : Bar, T : Baz { ... }

文書化されているここ

おすすめ記事