Я пытаюсь использовать библиотеку Kryo для глубокого копирования объектов, но у меня небольшая проблема. Я хотел бы глубоко скопировать объект без переходных переменных. Я знаю, что я могу использовать для setCopyTransient(false)
FieldSerializer
так:Kryo setCopyTransient
FieldSerializer<?> playerSerializer = new FieldSerializer<Player>(kryo, Player.class);
playerSerializer.setCopyTransient(false);
kryo.register(Player.class, playerSerializer);
, но я должен был бы установить новый FieldSerializer
для каждого класса. Могу ли я получить как-то по умолчанию FieldSerilizer
от Kryo и установить там setCopyTransient(false)
? Я пробовал что-то подобное и подобные решения, но ничего не делает:
FieldSerializer<?> serilizer = (FieldSerializer<?>) kryo.getDefaultSerializer(FieldSerializer.class);
serilizer.setCopyTransient(false);
Я использую kryo версии 3.0.3. Используете ли вы kryo для глубокого копирования (метод 'kryo.copy()')? Копирование не сериализуется в байты и обратно. В нормальных сериализации переходные поля опускаются, но в кооперации нет. – Sabriael
@Sabriael No. Я использую его для передачи данных по сети. Я думаю, что копия может делать это намеренно. – Jags