Size: a a a

2019 October 20

AN

Alexander Nozik in Kotlin Start
FOX
я не сомневаюсь что Вы знаете, но нме как совсем новичку тяжеловато.
Проще делать правильно. Щас
источник

AM

Andrew Mikhaylov in Kotlin Start
FOX
Поэтому проще через интерфейс
Так ну вы попробовали заменить интерфейс на тайпалиас?
источник

AM

Andrew Mikhaylov in Kotlin Start
А использовать его ровно так же, как вы в котлине лямбды пишете там, где джава ожидает интерфейсы с одним методом
источник

AM

Andrew Mikhaylov in Kotlin Start
Это почти то же самое, только в меньшее количество строк кода
источник

D

Denys in Kotlin Start
Alexander Nozik
В случае SAM конверсии тип будет нативный джавовый, там функционального типа не будет
Я про ситуации вроде

javaFoo.countListeners() // 0
javaFoo.addCallback({ ... })
javaFoo.removeCallback({ ... })
javaFoo.countListeners() // 1


Народ такое часто вначале ловит.
источник

AN

Alexander Nozik in Kotlin Start
FOX
я не сомневаюсь что Вы знаете, но нме как совсем новичку тяжеловато.
источник

AM

Andrew Mikhaylov in Kotlin Start
Denys
Я про ситуации вроде

javaFoo.countListeners() // 0
javaFoo.addCallback({ ... })
javaFoo.removeCallback({ ... })
javaFoo.countListeners() // 1


Народ такое часто вначале ловит.
Вопрос вроде не об этом был, но замечание резонное.
источник

AN

Alexander Nozik in Kotlin Start
Denys
Я про ситуации вроде

javaFoo.countListeners() // 0
javaFoo.addCallback({ ... })
javaFoo.removeCallback({ ... })
javaFoo.countListeners() // 1


Народ такое часто вначале ловит.
Ну, это, простите, просто ерунда. Довольно очевидно, что новый {} новую лямбду создаст
источник

F

FOX in Kotlin Start
Вот! Теперь понятнее стало. DataHandler вы сделали сиглтоном по сути?
источник

D

Denys in Kotlin Start
Andrew Mikhaylov
Вопрос вроде не об этом был, но замечание резонное.
Поэтому уточнил, что не видел контекста. 🌚
источник

AM

Andrew Mikhaylov in Kotlin Start
Alexander Nozik
Ну, это, простите, просто ерунда. Довольно очевидно, что новый {} новую лямбду создаст
Там достаточно ту же лямбду использовать, проблема останется та же
источник

AN

Alexander Nozik in Kotlin Start
FOX
Вот! Теперь понятнее стало. DataHandler вы сделали сиглтоном по сути?
Ну в данном случае у вас он был синглетоном. В общем случае это не обязательно совершенно
источник

D

Denys in Kotlin Start
Alexander Nozik
Ну, это, простите, просто ерунда. Довольно очевидно, что новый {} новую лямбду создаст
Очевидно после того, как один раз поймаешь багу. :)
источник

F

FOX in Kotlin Start
Alexander Nozik
Ну в данном случае у вас он был синглетоном. В общем случае это не обязательно совершенно
Нет не был.
источник

AM

Andrew Mikhaylov in Kotlin Start
Потому что неявно будет каждый раз новый враппер создаваться
источник

R

Ramazan in Kotlin Start
Не привычно в котлине что функции могут быть параметрами или объектами
источник

AN

Alexander Nozik in Kotlin Start
Andrew Mikhaylov
Там достаточно ту же лямбду использовать, проблема останется та же
Надо же ссылку
источник

AN

Alexander Nozik in Kotlin Start
Ramazan
Не привычно в котлине что функции могут быть параметрами или объектами
Welcome to FP
источник

AN

Alexander Nozik in Kotlin Start
FOX
Нет не был.
Был, у вас нет состояния. Если нет состояния, значит синглетон
источник

D

Denys in Kotlin Start
Alexander Nozik
Надо же ссылку
Обычно так делают:

val callback = { }

javaFoo.countListeners() // 0
javaFoo.addCallback(callback)
javaFoo.removeCallback(callback)
javaFoo.countListeners() // 1
источник