Size: a a a

Kotlin Community

2020 November 17

IP

Iaroslav Postovalov in Kotlin Community
Lev Shagalov
а про ftp есть че то удобное для котлина?
ftp еще жив?
источник

T

The The in Kotlin Community
простите за тупой вопрос... но можно как-то указать в параметре (в конструкторе в частности) тип переменной которая implements определенной интерфейс?
источник

IP

Iaroslav Postovalov in Kotlin Community
The The
простите за тупой вопрос... но можно как-то указать в параметре (в конструкторе в частности) тип переменной которая implements определенной интерфейс?
interface I
class A(var i: I)
источник

T

The The in Kotlin Community
Iaroslav Postovalov
interface I
class A(var i: I)
было бы все так просто. мне нужен в конструкторе тип переменной A, которая должна имплементировать интерфейс I
источник

IP

Iaroslav Postovalov in Kotlin Community
The The
было бы все так просто. мне нужен в конструкторе тип переменной A, которая должна имплементировать интерфейс I
что значит тип переменной A?
источник

IP

Iaroslav Postovalov in Kotlin Community
KClass?
источник

T

The The in Kotlin Community
да, допустим KClass
источник

IP

Iaroslav Postovalov in Kotlin Community
The The
да, допустим KClass
class A<T>(classOfT: KClass<T>) where T : Any, T : I
источник

T

The The in Kotlin Community
так не хотелось дженерики мутить
источник

IP

Iaroslav Postovalov in Kotlin Community
The The
так не хотелось дженерики мутить
эм. а что не так с ними
источник

T

The The in Kotlin Community
Iaroslav Postovalov
эм. а что не так с ними
та с ними все ок, но для такой ситуации хотелось бы иметь возможность более лаконичной записи в котлине. например:
источник

IP

Iaroslav Postovalov in Kotlin Community
The The
та с ними все ок, но для такой ситуации хотелось бы иметь возможность более лаконичной записи в котлине. например:
имхо это ужасно выглядит
источник

IP

Iaroslav Postovalov in Kotlin Community
extends/implements must die
источник

PE

Pavel Erokhin in Kotlin Community
+++++
источник

VP

Vladimir Petrakovich in Kotlin Community
The The
та с ними все ок, но для такой ситуации хотелось бы иметь возможность более лаконичной записи в котлине. например:
Без дженериков никак нельзя сказать, что один тип должен наследоваться от двух других.
Ну а что страшного в дженериках?
class ChooserFolderTree<T>(var activityCaller: T) where T : Activity, T : ActivityResultCaller

А вообще вы можете принимать в конструкторе отдельно  Activity и реализацию интерфейса, а передавать туда один и тот же объект
источник

T

The The in Kotlin Community
Iaroslav Postovalov
extends/implements must die
по вашему это выглядит лучше чем если была бы возможность указать прямо в параметре implements?
источник

PE

Pavel Erokhin in Kotlin Community
The The
по вашему это выглядит лучше чем если была бы возможность указать прямо в параметре implements?
лучше
источник

T

The The in Kotlin Community
Pavel Erokhin
лучше
и как мне наследоваться? во всех наследниках прописывать этот ужас?)
источник

AL

Alexander Levin in Kotlin Community
Pavel Erokhin
лучше
Ну т.е. вообще я бы предпочёл наличие intersection type для этого. Ну, по крайней мере вводить дженерики ради нескольких ограничений если сам по себе этот дженерик не нужен - это странно.

Да и объявление дженериков выглядело бы почище, чем эта секция where
источник

AL

Alexander Levin in Kotlin Community
Alexander Levin
Ну т.е. вообще я бы предпочёл наличие intersection type для этого. Ну, по крайней мере вводить дженерики ради нескольких ограничений если сам по себе этот дженерик не нужен - это странно.

Да и объявление дженериков выглядело бы почище, чем эта секция where
Условно если дженерик не нужен то:

abstract class ChooserFolderTree(var activityCaller: Activity & ActivityResultCaller): IChooserFolderTree


Если нужен:

abstract class ChooserFolderTree<T: Activity & ActivityResultCaller>(var activityCaller: T): IChooserFolderTree
источник