Size: a a a

2019 October 20

AM

Andrew Mikhaylov in Kotlin Start
Alexander Nozik
Так вроде они сейчас сильно подкрутили J2K
Я его давно не тыкал, но всё равно вряд ли он близок к идеалу.
источник

F

FOX in Kotlin Start
покажите на моем примере как по-вашему в Котлин надо делать коллбэк
источник

AM

Andrew Mikhaylov in Kotlin Start
Каким бы он крутым не был, плясать от его результатов как от хорошего примера котлин-кода всё равно не надо.
источник

AM

Andrew Mikhaylov in Kotlin Start
Так эцсамое, вот.
источник

AM

Andrew Mikhaylov in Kotlin Start
typealias DataQuery = (String)->Unit
Тогда никакого object не надо
источник

AM

Andrew Mikhaylov in Kotlin Start
Это если хочется для коллбека иметь обозванный в явном виде тип
источник

AM

Andrew Mikhaylov in Kotlin Start
Если нет -- можно тем самым (String) -> Unit и пользоваться
источник

D

Denys in Kotlin Start
Andrew Mikhaylov
typealias DataQuery = (String)->Unit
Тогда никакого object не надо
А это не Listener нужен, разве?
источник

F

FOX in Kotlin Start
Andrew Mikhaylov
typealias DataQuery = (String)->Unit
Тогда никакого object не надо
тяжело понять в одну строку. Если в джава-стайл то будет так?
interface DataQuery {
   fun onDataquery(conn: String): Unit
}
источник

AN

Alexander Nozik in Kotlin Start
Denys
А это не Listener нужен, разве?
если это джавовый API, там придется интеропиться, но там и SAM есть. Если API полностью свой, то все круто
источник

AM

Andrew Mikhaylov in Kotlin Start
Denys
А это не Listener нужен, разве?
Название взято из примера вопрошающего :)
источник

D

Denys in Kotlin Start
Alexander Nozik
если это джавовый API, там придется интеропиться, но там и SAM есть. Если API полностью свой, то все круто
Я не видел контекста задачи, но если делать подписку/отписку, то SAM приведет к багу (из-за создания нового экземпляра при отписке).
источник

AN

Alexander Nozik in Kotlin Start
FOX
тяжело понять в одну строку. Если в джава-стайл то будет так?
interface DataQuery {
   fun onDataquery(conn: String): Unit
}
fun DataSomething.listen(listener: (String)->Unit){}
dataSomething.listen{
 println(it)
}
источник

AN

Alexander Nozik in Kotlin Start
Denys
Я не видел контекста задачи, но если делать подписку/отписку, то SAM приведет к багу (из-за создания нового экземпляра при отписке).
Если надо делать отписку, то надо хранить где-то экземпляр, от которого надо отписываться. Какого он типа - не важно
источник

F

FOX in Kotlin Start
Alexander Nozik
fun DataSomething.listen(listener: (String)->Unit){}
dataSomething.listen{
 println(it)
}
интерфес же должен быть а не fun
источник

D

Denys in Kotlin Start
Alexander Nozik
Если надо делать отписку, то надо хранить где-то экземпляр, от которого надо отписываться. Какого он типа - не важно
Да, но котлин-функцию нельзя, если будет происходить SAM conversion. :)
источник

AN

Alexander Nozik in Kotlin Start
FOX
интерфес же должен быть а не fun
Я как экстеншен написал. Эта функция может быть мембером. Никакой интерфейс тут не нужен
источник

AN

Alexander Nozik in Kotlin Start
Denys
Да, но котлин-функцию нельзя, если будет происходить SAM conversion. :)
В случае SAM конверсии тип будет нативный джавовый, там функционального типа не будет
источник

F

FOX in Kotlin Start
Alexander Nozik
Я как экстеншен написал. Эта функция может быть мембером. Никакой интерфейс тут не нужен
я не сомневаюсь что Вы знаете, но нме как совсем новичку тяжеловато.
источник

F

FOX in Kotlin Start
Поэтому проще через интерфейс
источник