1. ホーム
  2. generics

[解決済み] Kotlinの汎用拡張クラスとインターフェイスの実装

2022-12-17 21:46:26

質問

あるクラスを拡張し、あるインタフェースを実装した型変数Tが欲しいとします。以下のようなものです。

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

これはKotlinではどのような構文になるのでしょうか?

どのように解決するのですか?

角括弧の中には上限値を1つだけ指定することができます。

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

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

と関数に対して

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

これは、文書化された はこちら .