Я работаю над десериализацией больших файлов, которые должны быть поддержаны будущими версиями программного обеспечения в будущем, которые имеют различные атрибуты. Я использовал readObject () во многих местах для добавления поддержки управления версиями, однако есть одна вещь, которую я не совсем уверен, как это исправить.
java.io.InvalidObjectException: enum constant ENUM_NAME does not exist in class
Как ты справляешься с этим? Как добавить функцию перечисления readObject () - esque в перечисление, чтобы разрешить управление версиями этого перечисления (т. Е. Возвращать нулевое значение для перечисления или т. Д.), Когда загрузка этого конкретного перечисления не удалась?
Насколько я понимаю, вы не можете просто добавить readObject () в перечисления, так как Java обрабатывает их десериализацию по-разному. Или я ошибаюсь? Трудно гуглить тему и найти мою конкретную проблему. Мне действительно нужен способ обработки версий перечислений.
Заранее благодарю за помощь.
EDIT:
Я знаю, что здесь есть похожий вопрос:
Обработка десериализации значений enum, которые больше не существуют
Я бы хотел оставить вопрос открытым для обсуждения, поскольку этот пост был сделан в 2012 году (и его последующий ответ был сделан в 2014 году), и более новые версии Java могут иметь новые решения проблемы. Спасибо.