web-dev-qa-db-ja.com

汎用拡張クラスであり、Kotlinでインターフェイスを実装します

特定のクラスを拡張し、インターフェイスを実装する型変数Tが必要だとします。何かのようなもの:

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

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

65
frenchdonuts

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

Kotlinは、複数の制約がある場合、一般的な制約に対して異なる構文を提供します。

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

および機能の場合:

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

文書化されています ここ

133
hotkey