Size: a a a

Kotlin Community

2020 March 30

RE

Roman Elizarov in Kotlin Community
Вот на разные простые, но полезные случая очень буду рад, если вы будете issue создавать, где опишете шаблон по которому его можно поймать.
источник

AN

Alexander Nozik in Kotlin Community
Roman Elizarov
Проблема в том, что задача вообще не разрешима. Можно только в самых тривиальных случаях выдать warning (вроде где-то уже есть)
Это понятно. Но есть набор довольно стандартных граблей вроде вызова функции из инит блока. Не думаю, что это первоочередная задача. Грабли там лежат, но встречаются довольно редко.
источник

VP

Vladimir Petrakovich in Kotlin Community
Roman Elizarov
Вот на разные простые, но полезные случая очень буду рад, если вы будете issue создавать, где опишете шаблон по которому его можно поймать.
Использование sealed-подкласса в инициализаторе поля companion object похоже на такой случай
источник

VP

Vladimir Petrakovich in Kotlin Community
Vladimir Petrakovich
Использование sealed-подкласса в инициализаторе поля companion object похоже на такой случай
В случае с подклассом-object это вроде бы практически гарантированный взрыв.
источник

VP

Vladimir Petrakovich in Kotlin Community
Кажется, таких примеров уже хватает
https://youtrack.jetbrains.com/issue/KT-8970
источник

AO

Alexey Otts in Kotlin Community
Roman Elizarov
Дискусии нет, потому что это не баг, а особенности порядка инициализации. Его можно поменять так, чтобы конкретно этот код заработал, но тогда сломается какой-нибудь другой код. В общем случае нет решения которое бы всегда работало и каждый практический ЯП выбирает какой-то порядок и живет с ним и с тем кодом, который из-за него не работает. Не очень понятно какое на эту тему может быть обсуждение.
Ну почему, в скале этот кейс будет работать корректно, тут наверное вопрос на какие жертвы вы готовы пойти, чтобы оно работало правильно
источник

AW

Alex Wells in Kotlin Community
interface Interface {

}

@kotlinx.serialization.Serializable
sealed class SimpleSealed: Interface {
   @kotlinx.serialization.Serializable
   public data class SubSealedA(val s: String) : SimpleSealed()

   @kotlinx.serialization.Serializable
   public data class SubSealedB(val i: Int) : SimpleSealed()
}



val messageModule = SerializersModule {
           polymorphic(Interface::class) {
               SimpleSealed::class with SimpleSealed.serializer()
               SimpleSealed.SubSealedA::class with SimpleSealed.SubSealedA.serializer()
               SimpleSealed.SubSealedB::class with SimpleSealed.SubSealedB.serializer()
           }
       }

       val json = Json(JsonConfiguration.Stable.copy(classDiscriminator = "nodeType"), context = messageModule)
       val j = json.stringify(PolymorphicSerializer(Interface::class), SimpleSealed.SubSealedA("foo"))
       println(j)
       println(json.parse(PolymorphicSerializer(Interface::class), j))

Почему оно не стягивает sealed и не работает без указания вручную всех реализаций силда? И.е. это - не нужно, если я сериализую SimpleSealed``SimpleSealed.serializer()'ом, но почему-то вдруг нужно когда сериализую полиморфный интерфейс?
SimpleSealed.SubSealedA::class with SimpleSealed.SubSealedA.serializer()
SimpleSealed.SubSealedB::class with SimpleSealed.SubSealedB.serializer()

Или я опять чего-то не понимаю?)
источник

A

Aleksandr in Kotlin Community
Привет 👋! Я разрабатываю решения по API и хочу попросить дать обратную связь. вопросы, предложения.
Кому интересно скину в ЛС
Спасибо
источник

QH

Quantum Harmonizer in Kotlin Community
Aleksandr
Привет 👋! Я разрабатываю решения по API и хочу попросить дать обратную связь. вопросы, предложения.
Кому интересно скину в ЛС
Спасибо
источник

A

Aleksandr in Kotlin Community
путаешь советы с обратной связью
источник

A

Aleksandr in Kotlin Community
advice - советовать. совет
источник

QH

Quantum Harmonizer in Kotlin Community
Aleksandr
путаешь советы с обратной связью
Неа, просто передаю общую идею о том, что дать минимум информации и тащить в личку не классно.
источник

A

Aleksandr in Kotlin Community
Какой информации вам не хватает?
источник

H

Hadji in Kotlin Community
Так в посте вообще никакой информации нет)
источник

PS

Pavel Shilyagov in Kotlin Community
Aleksandr
Какой информации вам не хватает?
А какую информацию вы дали? Правильно, никакую.
источник

H

Hadji in Kotlin Community
Тут больше 3к людей - я уверен, что у большей части есть какие-то проекты, поэтому «я разрабатываю решение» - это, можно сказать, дефолт)
«Привет! Я ничего не разрабатываю» - вот это был бы каминг аут)
источник

A

Aleksandr in Kotlin Community
@Harmonizr @mgadzhi @Oo_p69
Разрабатываю программу для автоматизации работы с API. Это включает в себя: Отслеживание изменения, состовление отчетов,поддержка API, улучшение коммуникации среди комманд
источник

A

Aleksandr in Kotlin Community
Так же данное решение интегрируется с Git, JIRA
источник

A

Aleksandr in Kotlin Community
Достаточно информации?
источник

QH

Quantum Harmonizer in Kotlin Community
Aleksandr
@Harmonizr @mgadzhi @Oo_p69
Разрабатываю программу для автоматизации работы с API. Это включает в себя: Отслеживание изменения, состовление отчетов,поддержка API, улучшение коммуникации среди комманд
Учитывая, что товарищ поднял историю с упониманием Swagger, я догадался, что речь идёт о RPC API, и тогда стало достаточно.
источник