Size: a a a

Kotlin Community

2020 June 29

LS

Lev Shagalov in Kotlin Community
А сериализатор рядом есть. Анноташки есть. Че не находит - не знаю
источник

LS

Lev Shagalov in Kotlin Community
Странно, у меня на машине работает, у коллеги не работает... Так или иначе - спасибо
источник

OY

Oleg Yukhnevich in Kotlin Community
Lev Shagalov
Странно, у меня на машине работает, у коллеги не работает... Так или иначе - спасибо
ещё можно заимплементить serializer в companion object и тогда он автоматически должен подхватиться с просто @Serializable, без указания класса, но я не на 100% уверен
но вроде всё это есть в доке
источник

a

akniyet in Kotlin Community
Привет всем, прохожу уроки по корутинам, но никак не могу соединить все эти пазлы.
1. если мы делаем launch(Dispatchers.Main) {
     suspend fun someMethod()
},
то когда выполнение кода доходит до suspend функции он ее выполняет в другом потоке?
то что кампилятор разделяет внутри на labels, и выполняет по очереди приостанавливая код(не блокируя поток) это понятно, но в голове не укладывается, как может долгая операция выполняться из main потока
источник

GS

Gennady Savinov in Kotlin Community
Всем привет, может кто-нибудь подсказать. Собираю osgi bundle через мавен, внутри использую корутины и при запуске получаю ошибку
java.lang.ClassNotFoundException: kotlinx.coroutines.BuildersKt not found by ...kotlinx-coroutines-core-common-1.1.1.jar я так понял этот класс находится в kotlinx-coroutines-core, а не в коммоновском, из-за чего он может идти искать его именно в common?
источник

AL

Anton Lakotka in Kotlin Community
akniyet
Привет всем, прохожу уроки по корутинам, но никак не могу соединить все эти пазлы.
1. если мы делаем launch(Dispatchers.Main) {
     suspend fun someMethod()
},
то когда выполнение кода доходит до suspend функции он ее выполняет в другом потоке?
то что кампилятор разделяет внутри на labels, и выполняет по очереди приостанавливая код(не блокируя поток) это понятно, но в голове не укладывается, как может долгая операция выполняться из main потока
не совсем понятен вопрос.  launch(Dispatchers.Main) { /* код внутри будет исполнен Main тредом, если явно не указано другое */ } это не понятно?
источник

GS

Gennady Savinov in Kotlin Community
Gennady Savinov
Всем привет, может кто-нибудь подсказать. Собираю osgi bundle через мавен, внутри использую корутины и при запуске получаю ошибку
java.lang.ClassNotFoundException: kotlinx.coroutines.BuildersKt not found by ...kotlinx-coroutines-core-common-1.1.1.jar я так понял этот класс находится в kotlinx-coroutines-core, а не в коммоновском, из-за чего он может идти искать его именно в common?
вроде разобрался, не актуально)
источник

a

akniyet in Kotlin Community
Anton Lakotka
не совсем понятен вопрос.  launch(Dispatchers.Main) { /* код внутри будет исполнен Main тредом, если явно не указано другое */ } это не понятно?
ок, все suspend функции внутри этого билдера будут выполнены в мейн блокируя мейн, верно?
источник

VP

Vladimir Petrakovich in Kotlin Community
akniyet
ок, все suspend функции внутри этого билдера будут выполнены в мейн блокируя мейн, верно?
Вся суть suspend в том, чтобы не блокировать тред, вы же сами написали про лейблы и приостановку
источник

AL

Anton Lakotka in Kotlin Community
akniyet
ок, все suspend функции внутри этого билдера будут выполнены в мейн блокируя мейн, верно?
что имеется ввиду под блокировкой?
источник

AL

Anton Lakotka in Kotlin Community
Я подозреваю, что новички не всегда понимаю что такое блокировка треда. и чем являются suspend функции под капотом.
источник

a

akniyet in Kotlin Community
Anton Lakotka
Я подозреваю, что новички не всегда понимаю что такое блокировка треда. и чем являются suspend функции под капотом.
я понимаю про блокировку, но с корутинами только пытаюсь разобраться, если у нас в suspend функциях не будет переключения на Dispatcher.io, то при создании билдера с Dispatcher.Main, то эта suspend функция выполнится в мейн потоке верно? просто было подозрение как будто по дефолту suspend выполняется в другом потоке
источник

AM

Andrew Mikhaylov in Kotlin Community
akniyet
я понимаю про блокировку, но с корутинами только пытаюсь разобраться, если у нас в suspend функциях не будет переключения на Dispatcher.io, то при создании билдера с Dispatcher.Main, то эта suspend функция выполнится в мейн потоке верно? просто было подозрение как будто по дефолту suspend выполняется в другом потоке
Подозрение неправильное, для дочерних корутин будет взять диспетчер родительской, если не указано другое. При этом можно спокойно хоть в одном мэин диспетчере жить (но не нужно, конечно же) -- в каждом suspension point по сути будет выполнен internalUiThreadHandler.post(coroutineContinuation)
источник

AM

Andrew Mikhaylov in Kotlin Community
То есть на suspension point возможно (обязательно ли -- вопрос, ЕМНИП, к конкретному диспетчеру) освобождение потока с постановкой продолжения вашей функции в будущем.
источник

AN

Alexander Nozik in Kotlin Community
akniyet
я понимаю про блокировку, но с корутинами только пытаюсь разобраться, если у нас в suspend функциях не будет переключения на Dispatcher.io, то при создании билдера с Dispatcher.Main, то эта suspend функция выполнится в мейн потоке верно? просто было подозрение как будто по дефолту suspend выполняется в другом потоке
По дефолту корутины про потоки вообще ничего не знают. Надо где-нибудь жирными буквами написать coroutines != threads. При вызове suspend функции вообще как правило нет context switch. Он происходит обычно только в корутин билдерах.
источник

BP

Bogdan Panchenko in Kotlin Community
Lev Shagalov
Странно, у меня на машине работает, у коллеги не работает... Так или иначе - спасибо
разные версии?
источник

LS

Lev Shagalov in Kotlin Community
Bogdan Panchenko
разные версии?
Не разобрались. Цейтнот. Позже вернёмся. Ага.
источник

VT

Vaycheslav Til in Kotlin Community
Ребят, здравствуйте ) я в котлине новый (как собсно и в джаве )) . Решил "копнуть" разработку под десктоп. Нашел из адаптированного под котлин только торнадо-фх. Но по гитхабу сложилось ощущение что развивается он немного вяло. Я ошибаюсь и стоит его использовать? Либо есть более живые альтернативы? Спасибо.
источник

AM

Andrew Mikhaylov in Kotlin Community
Vaycheslav Til
Ребят, здравствуйте ) я в котлине новый (как собсно и в джаве )) . Решил "копнуть" разработку под десктоп. Нашел из адаптированного под котлин только торнадо-фх. Но по гитхабу сложилось ощущение что развивается он немного вяло. Я ошибаюсь и стоит его использовать? Либо есть более живые альтернативы? Спасибо.
Я б не переживал за "вялость" торнадо, это точно самый продвинутый и feature-rich фреймворк для котлина.
источник

VT

Vaycheslav Til in Kotlin Community
а что лучше - пробовать его? либо использовать JavaFX? и возможно ли его использовать в полной мере в котлине? (как заявляется в описании котлина)
источник