Size: a a a

Kotlin Community

2020 November 16

AN

Alexander Nozik in Kotlin Community
Ilya Nikolaev
А теперь обновился до релизной версии и все стало плохо.
Можно и кастомный, но это будет сложнее.
источник

LS

Lev Shagalov in Kotlin Community
Alexander Nozik
Ты не можешь вытащить сериализатор из динамической сущности. У тебя там стоит объект типа твоей сущности а сериализатор абстрактный какой-то.
Ну так я сериализатор то не знаю заранее
источник

AN

Alexander Nozik in Kotlin Community
Lev Shagalov
Ну так я сериализатор то не знаю заранее
А чего тогда ты хочешь туда добавлять? Сериализатор генерируется статически. Ты не можешь его вытащить в рантайме (ну наверное можешь, но лучше так не делать).
источник

LS

Lev Shagalov in Kotlin Community
Alexander Nozik
А чего тогда ты хочешь туда добавлять? Сериализатор генерируется статически. Ты не можешь его вытащить в рантайме (ну наверное можешь, но лучше так не делать).
Окей, нет так нет)
источник

AN

Alexander Nozik in Kotlin Community
Lev Shagalov
Окей, нет так нет)
Для того, чтобы это работало класс долен или явно тащить свой сериализатор (кстати не сложно сделать, обычный рекурсивный тип). Или делать модули и мержить их
источник

AN

Alexander Nozik in Kotlin Community
Можно даже срезать острый угол с рекурсией через unsafe cast
источник

IN

Ilya Nikolaev in Kotlin Community
Тоже не написали в доке по миграции. На что заменить serializer().list ?
источник

IN

Ilya Nikolaev in Kotlin Community
Куда это дело вынесли ?)
источник

AN

Alexander Nozik in Kotlin Community
Ilya Nikolaev
Тоже не написали в доке по миграции. На что заменить serializer().list ?
ListSerializer(...) и там точно где-то это было
источник

IN

Ilya Nikolaev in Kotlin Community
Благодарю
источник

ДК

Дима Красилов... in Kotlin Community
Чуваки, а какой-то бест практис по хранению sealed классов в монге есть?

У меня есть поле в документе абстрактного типа и возникла необходимость осуществлять поиск по типу.
Я использую спринг дата и как будто самое простое решение для меня это добавить дублирующий енам и передавать его в параметре конструктора sealed класса, чтобы удобно и просто в спринг дате юзать поиск по этому полю и индексировать это поле тоже понятно и просто

Но ощущение, что хуйню какую-то делаю не покидает
источник

VP

Vladimir Petrakovich in Kotlin Community
Дима Красилов
Чуваки, а какой-то бест практис по хранению sealed классов в монге есть?

У меня есть поле в документе абстрактного типа и возникла необходимость осуществлять поиск по типу.
Я использую спринг дата и как будто самое простое решение для меня это добавить дублирующий енам и передавать его в параметре конструктора sealed класса, чтобы удобно и просто в спринг дате юзать поиск по этому полю и индексировать это поле тоже понятно и просто

Но ощущение, что хуйню какую-то делаю не покидает
А почему дублирующий? Как определяется, какой конкретный класс хранится в думаете?
источник

VP

Vladimir Petrakovich in Kotlin Community
А, spring data. Видимо, по имени класса.
источник

VP

Vladimir Petrakovich in Kotlin Community
Лично моё мнение: схема с полем с enum - это норм. А вот Spring Data Mongo + Kotlin - не норм.
источник

АО

Алексей Овсянников... in Kotlin Community
А это нормально, что у интерфеса с @Serializable и указанным сериализатором нет метода serializer ?
источник

АО

Алексей Овсянников... in Kotlin Community
Всем привет
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
А это нормально, что у интерфеса с @Serializable и указанным сериализатором нет метода serializer ?
Интерфейс Serializable из жавы прилетел. В котлин такого нет
источник

АО

Алексей Овсянников... in Kotlin Community
Алексей Овсянников
А это нормально, что у интерфеса с @Serializable и указанным сериализатором нет метода serializer ?
Я поправил, чтобы не было недопонимания
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Я поправил, чтобы не было недопонимания
а. Метод вообще не у интерфейса, а у компаньона
источник

AN

Alexander Nozik in Kotlin Community
А лучше A::class.serializer()
источник