возвращать diff? Важно, чтобы соблюдалась вложенность.
Например:
class Dummy(val id: String, val body: DummyBody)
class DummyBody(val id: String, val name: String, val aggregate: Int)
И при сравнении двух объектов можно будет детально по вложенности получить изменения: dummy.body.name
Для jvm, можно воспользоваться java-либами. Их вроде много находится по запросу java object diff
Если вы знаете хорошую, то укажите, пж-та. Я в итоге не нашел качественную, которая работает с дженкриками.
А что вы хотите от дженериков, котрых нет в рантайме 🤔 в вашем примере их, кстати, нет.
Вы не так меня поняли. Под дженкриками имеется в виду, что библиотека работает с обобщённым типами. Есть примеры, где кэпчюринг изменений привязан к конкретному классу, он реализует некий интерфейс и завязка идёт на это. Пример - до простоты.
Ну это классика. Я начал пилить, потом понял, что руки чешутся написать какое-то общее решение. Ну и явно же похожие штуки народ творил.
Есть вариант перегнать их оба в json любым сериализатором, а потом сделать diff в виде json patch. Например, этой либой.
А разве она умеет так?
Так - это как?
Кажись вижу. Просто как-то странно выглядит.
Это сравнительно легко делается через сериализацию
Ну по факту если речь идёт про работу с деревом JSON структуры, то это очевидно. Только я всегда стараюсь узнать, изобретён ли велосипед.
Не обязательно kotlinx-сериализация может работать вообще без представления. Вот например как тут описано: https://github.com/Kotlin/kotlinx.serialization/issues/1238
Обсуждают сегодня