Size: a a a

Kotlin Community

2019 November 27

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Надо будет потом посмотреть, а то с первого взгляда выглядит как бурда какая-то:)
Ну так ручной полиморфный сериализатор. Можно использовать родной, но там будут дикой длины строки с типами.
источник

AN

Alexander Nozik in Kotlin Community
А, там еще кстати отдельный кейс, когда это все-таки Json
источник

SB

Sergey Barmin in Kotlin Community
Mikhail Levchenko
Вангую что это будет какая нибудь cloud based ide
вечером вчера еще такая штука в твиттер влетела, тоже может связано)
источник

ML

Mikhail Levchenko in Kotlin Community
ну cloud debugging не совсем то)
источник

DS

Dmitry Starchevsky in Kotlin Community
Можете пояснить в чем разница между аннотациями @JvmField и просто @field ?
Я нашел, что JvmField - Instructs the Kotlin compiler not to generate getters/setters for this property and expose it as a field.
А про @field я нашел, что аннотация для Java-поля
источник

ML

Mikhail Levchenko in Kotlin Community
Dmitry Starchevsky
Можете пояснить в чем разница между аннотациями @JvmField и просто @field ?
Я нашел, что JvmField - Instructs the Kotlin compiler not to generate getters/setters for this property and expose it as a field.
А про @field я нашел, что аннотация для Java-поля
JvmFiled - аннотация, field - это таргет
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry Starchevsky
Можете пояснить в чем разница между аннотациями @JvmField и просто @field ?
Я нашел, что JvmField - Instructs the Kotlin compiler not to generate getters/setters for this property and expose it as a field.
А про @field я нашел, что аннотация для Java-поля
Ну как бы вот и разница
источник

ML

Mikhail Levchenko in Kotlin Community
т.е. указание разместить аннотацию над джава полем а не сгенерированным геттером
источник

КР

Кирилл Романенко in Kotlin Community
Подскажите пожалуйста (оч давно не работал с экзепшенами в корутинах, поэтому запамятовал):
https://gist.github.com/indrih17/b55c5a27b40cb306447f167120257835
Почему экзепшен летит мимо try-catch? По сути всё назначение этого кода - прервать выполнение этой блокирующей таски если она будет работать слишком долго (withTimeout не помогает). Если есть более эффективный способ - предложите, пожалуйста.
источник

RI

Ruslan Ibragimov in Kotlin Community
потому что эксепшен случается в корутине, это как thread(start = true) { throw MFE() } - ты же не ожидаешь что эксешен из того треда прилетит в твой текущий
источник

КР

Кирилл Романенко in Kotlin Community
Ruslan Ibragimov
потому что эксепшен случается в корутине, это как thread(start = true) { throw MFE() } - ты же не ожидаешь что эксешен из того треда прилетит в твой текущий
Логично. А как тогда лучше сделать?
источник

RI

Ruslan Ibragimov in Kotlin Community
coroutine.join() "прокинет" эксепшен, или делать обработку внутри корутины
источник

RE

Roman Elizarov in Kotlin Community
join не прокинет. Проще всего try { ... } catch написать внутри, а не снаружи.
источник

КР

Кирилл Романенко in Kotlin Community
Roman Elizarov
join не прокинет. Проще всего try { ... } catch написать внутри, а не снаружи.
Тут экзепшен нужен для прерывания блокирующей таски, к которой я не имею никакого доступа, и по-другому не могу её завершить. Поэтому мне в любом случае нужно как-то запускать параллельную корутину и из неё выбрасывать экзепшен, если блок таска жива слишком долго.
источник

VB

Viacheslav Blinov in Kotlin Community
Кирилл Романенко
Тут экзепшен нужен для прерывания блокирующей таски, к которой я не имею никакого доступа, и по-другому не могу её завершить. Поэтому мне в любом случае нужно как-то запускать параллельную корутину и из неё выбрасывать экзепшен, если блок таска жива слишком долго.
запустите блокирующую таску в корутине на диспетчере IO. Потом сможете из второй корутины эту первую отменить.
источник

КР

Кирилл Романенко in Kotlin Community
Viacheslav Blinov
запустите блокирующую таску в корутине на диспетчере IO. Потом сможете из второй корутины эту первую отменить.
источник

VB

Viacheslav Blinov in Kotlin Community
да, так пожалуй работать не будет. Я так понимаю единственный способ остановить эту блокирующую задачу - сделать интеррапт исполняющего потока (если коненчо он там вообще обрабатывается).
источник

КР

Кирилл Романенко in Kotlin Community
Viacheslav Blinov
да, так пожалуй работать не будет. Я так понимаю единственный способ остановить эту блокирующую задачу - сделать интеррапт исполняющего потока (если коненчо он там вообще обрабатывается).
А если он будет на том же потоке, что и обрабатывающий код? Насколько я помню, корутина может обрабатываться на любом свободном потоке.
источник

AN

Alexander Nozik in Kotlin Community
Так, а как у нас теперь получить сериализатор для Enum? Я смотрю EnumSerializer переехал в internalAPI.
источник

LS

Leonid Startsev in Kotlin Community
Alexander Nozik
Так, а как у нас теперь получить сериализатор для Enum? Я смотрю EnumSerializer переехал в internalAPI.
If you cannot avoid using internal API to solve your problem, please report your use-case to serialization's issue tracker.
источник