как kotlinx-serialization работает?
там передаются типы явно поди вместе с инфой раздувая трафик?
не знаю. Думаю что нет, но смысл в том, что реификации типа тут нет. Он инстанцируется в десериализаторе.
я ничего не понял, но вот сериализация в жвм не раз отстреливала там, где в дотнете всё работает. Чтобы не стреляло, в жвм приходится передавать TypeInformation, да. Или инлайн функции котлина, тоже работает, да.
Только там, где вы явно попросите, включив контекстную / полиморфическую сериализацию (и то можно избежать с кастомным адаптером при надобности)
но этот кастомный адаптер просто скрывает ту же передачу TypeInformation по сути
Смысл в том, что реификация типов - это таскание класс-маркера вместе с контейнером. Вы класс-маркер будете засовывать в жсон?
А какие ещё варианты есть, если вам нужен Generic<SomeBaseType>?
(в авро кстати схему можно с собой таскать) Но в жсоне нет, не буду.
ну вот в дотнете этого не надо потому что рантайм знает именно про Generic<SomeBaseType>, а не про Generic<Object>
Так если у вас в классе лежит поле Generic<SomeSpecificType>, и при этом полиморфизм не нужен, информация о типе в джейсоне и не будет закодирована.
Рантайм знает только, что в жсоне поле type: "myType". Ничего другого он не знает
Обсуждают сегодня