Size: a a a

Kotlin Community

2020 December 04

M

Malik in Kotlin Community
Boris Vanin
Про опшнл
Да, Single.just(null) не напишешь, вот и приходится оборачивать
источник

M

Malik in Kotlin Community
Хорошо, буду использовать T? )
источник

BV

Boris Vanin in Kotlin Community
Malik
Да, Single.just(null) не напишешь, вот и приходится оборачивать
В котлине есть корутины и флоу, на рх свет клином не сошёлся
источник

BV

Boris Vanin in Kotlin Community
Я говорю про реальные кейзы, когда ошнл может быть вложенным. А наллабл не может
источник

BV

Boris Vanin in Kotlin Community
Но это редкие случаи
источник

M

Malik in Kotlin Community
Boris Vanin
В котлине есть корутины и флоу, на рх свет клином не сошёлся
В проекте RX, так что работаю с ним. Интересно какие еще кейсы есть, где Optional необходим
источник

`

` in Kotlin Community
`
а во флоу разве нельзя заемитить эксепшн? Только оборачивать в result / error?
ответ ко своему же вопросу, обернул в Kotlin.Result. И делаю  flow.emit(runcatching{ getsomthng }) Насколько это "нормально"?
источник

BV

Boris Vanin in Kotlin Community
Malik
В проекте RX, так что работаю с ним. Интересно какие еще кейсы есть, где Optional необходим
Да вот особо больше не видно, если найдёте присылайте будет интересно посмотреть
источник

AL

Alexander Levin in Kotlin Community
Malik
В проекте RX, так что работаю с ним. Интересно какие еще кейсы есть, где Optional необходим
Да особо нигде не надо, основной юзкейс и будет всякая совместимость с очень джавовыми фреймворками, которые могут неправильно переварить null.
источник

M

Malik in Kotlin Community
Спасибо за ответы)
источник

AL

Alexander Levin in Kotlin Community
Т.е. если вы в Котлине - просто используйте nullable types (если нужно конечно, если не нужно, то пользуйтесь тем, что типы могут быть не nullable :D)

Если есть пересечение с Джавой - проверяйте, навернётся ли всё от использования null, если да, то смотрите, что там идиоматично в этой либе/этом фреймворке (возможно Optional, может вообще что-то ещё)
источник

BV

Boris Vanin in Kotlin Community
`
ответ ко своему же вопросу, обернул в Kotlin.Result. И делаю  flow.emit(runcatching{ getsomthng }) Насколько это "нормально"?
Думаю, всё зависит от того что хочется получить
источник

BV

Boris Vanin in Kotlin Community
Boris Vanin
Думаю, всё зависит от того что хочется получить
Если просто избавиться от элементов с эксепшенами, то наверное норм. Их тогда можно и не эмитить вообще
источник

`

` in Kotlin Community
Boris Vanin
Думаю, всё зависит от того что хочется получить
кейс примерно такой: при инциализации определенного скоупа стартуют несколько корутин внутри неё. Важно захендлить извне ошибки любой из них с помощью флоу. Внаружу данные отдаются только с помощью одного флоу.
источник

BV

Boris Vanin in Kotlin Community
А, почитал сообщение предыдущее, вы как раз хотите пробрасывать, но все равно непонятно какого вы ожидаете проведения от этого заэмиченного эксепшена
источник

BV

Boris Vanin in Kotlin Community
`
кейс примерно такой: при инциализации определенного скоупа стартуют несколько корутин внутри неё. Важно захендлить извне ошибки любой из них с помощью флоу. Внаружу данные отдаются только с помощью одного флоу.
Что-то мне это ничего не объяснило. Код говорит лучше тысячи слов обычно
источник

BV

Boris Vanin in Kotlin Community
Нужно наружу эксепшены по флоу отправлять?
источник

BV

Boris Vanin in Kotlin Community
И на той стороне смотреть что там эксепшены или нет
источник

`

` in Kotlin Community
Boris Vanin
Нужно наружу эксепшены по флоу отправлять?
да, всё верно.
источник

BV

Boris Vanin in Kotlin Community
Ну тогда норм
источник