web-dev-qa-db-fra.com

Classe d'extension générique AND implémente l'interface dans Kotlin

Disons que je veux une variable de type, T, qui étend une certaine classe et implémente une interface. Quelque chose comme:

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

Quelle est la syntaxe pour cela dans Kotlin?

65
frenchdonuts

Une seule limite supérieure peut être spécifiée à l'intérieur des crochets.

Kotlin propose une syntaxe différente pour les contraintes génériques lorsqu'il existe plusieurs contraintes:

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

et pour les fonctions:

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

C'est documenté ici .

133
hotkey