/ / Generic разширяване на класа И изпълнява интерфейс в Kotlin - generics, kotlin

Обща разширителна класа И изпълнява интерфейс в Kotlin - генерични продукти, kotlin

Кажи, че искам променлива тип, T, която разширява определен клас и изпълнява интерфейс. Нещо като:

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

Какъв е синтаксисът за това в Котлин?

Отговори:

74 за отговор № 1

В рамките на ъгловите скоби може да се зададе само една горна граница.

Kotlin предлага различен синтаксис за общи ограничения, когато има повече от едно ограничение:

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

и за функции:

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

Това е документирано тук.