Я могу сделать это в Java:
public <T extends Bar & Baz> Foo(T arg) { ... }
В конструкторе Foo
, arg
набирается так, что он расширяет Bar
и реализует Baz
. Это делается без добавления параметра типа в Foo
(т.е. class Foo<T extends Bar & Baz>
). Как мне сделать то же самое в Kotlin? что-то вроде:
constructor<T>(arg: T) where T : Bar, T : Baz { ... }
Обновление: Я хотел бы добавить больше контекста, я использую кинжал в Android, который требует от меня сделать это:
@ContributesAndroidInjector
abstract fun Foo(): Foo
Не удается выполнить команду @ContributesAndroidInjector methods cannot return parameterized types
, когда я делаю это:
@ContributesAndroidInjector
abstract fun Foo(): Foo<*>
Вот почему добавление параметра типа (аналогично ответу ysakhno
) не является решением.