У меня есть сериализованный объект MyObject, который содержит целое число foo. Я устанавливаю значение 10 в целое число foo и сохраняю объект в файле с помощью writeObject().Предотвращение значений параметров сериализации Java по умолчанию
Я добавляю целочисленную панель для объекта MyObject. Я устанавливаю значение 15 в целочисленную строку, а затем загружаю старый сериализованный файл с помощью readObject().
Старый сериализуемый файл не содержит целых баров, поэтому целочисленная строка будет получать значение 0. Я хочу сохранить значение 15 в баре, если старый сериализуемый файл не содержит переменную строку.
Должен ли я переопределить readObject() или как я могу запретить readObject() устанавливать значения по умолчанию для неизвестных объектов?
Я хочу сделать это, потому что в конструкторе я устанавливаю свои собственные значения по умолчанию и хотел бы использовать собственные значения по умолчанию для управления версиями.
Спасибо, это хороший ответ. Я рад, что не зациклился на сериализации. Что бы вы предложили вместо этого? Мне нужен способ хранения объекта в виде файла и хорошего контроля над ним. – Mikuz
Если долговременное хранение - это ваша цель, я бы определенно сказал, используя что-то вроде flexjson. Вы всегда можете прочитать данные обратно, используя любую желаемую структуру объекта. Сериализация Java намного сложнее и граничит с невозможным, если у вас нет структуры объекта и пакета.Всякий раз, когда я пытался использовать сериализацию Java для долговременного хранения, я в конечном итоге копирую ее и заменяю. – chubbsondubs
Найдено XStream очень полезно. – Mikuz