Сериализация Java следует определенным правилам, о которых вам необходимо знать. По умолчанию любое изменение в классе Java «нарушает» сериализацию; объекты, сериализованные со старым классом, не могут быть десериализованы новым классом.
Если вы объявите serialVersionUID
в своем классе (и не измените значение), то десериализация будет разрешена даже при изменении класса. Он будет делать то, что вы обычно ожидаете, если вы привыкли к сериализации в / из JSON и добавлению / удалению полей в / из ваших классов. То есть, поля, удаленные из классов, оставят данные игнорируемыми, а добавленные новые поля будут иметь значения по умолчанию.
Некоторые люди ненавидят сериализацию Java, а некоторые любят ее. Это полезно и очень удобно при работе с очередью задач. Если вы всегда объявляете serialVersionUID
, вы, вероятно, будете в порядке ... большинство ошибок вызовут исключения, когда вы попытаетесь сериализовать данные, и вы довольно быстро это выясните.