Подтвердить что ты не робот

Универсальный расширяемый класс AND реализует интерфейс в Kotlin

Скажем, мне нужна переменная типа T, которая расширяет определенный класс и реализует интерфейс. Что-то вроде:

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

Каков синтаксис этого в Kotlin?

4b9b3361

Ответ 1

В угловых скобках можно указать только одну верхнюю границу.

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

class Foo<T> where T : Bar, T : Baz { ... }

и для функций:

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

Это документально подтверждено здесь.