お世話になっております。
serializableインターフェースを付与したクラスAがありUidに1Lを指定するとします。
クラスAをシリアライズ、バイナリ化してファイル1を出力。
このファイルはクラスAでJavaオブジェクトにデシリアライズ可能。
その後、
クラスAにフィールドを追加したのでクラスAのバージョンが変わったことを明示するためにUidに2Lを指定したとします。
そうすると、現状のクラスAではフィールド構成が違うのでファイル1からクラスAのデシリアライズに失敗すると思います。
これだけ見ると、Uidを変更してもしなくてもフィールド構成が違うのでデシリアライズに失敗すると思うのですがやはりUidは変更する必要あるでしょうか?
そもそもクラスAのフィールド構成を変えてしまった時点でファイル1はもはやデシリアライズ不可能(なんの意味も成さないバイナリファイル)になる気がするのですが、構成変更前のファイルもデシリアライズしたい場合はクラスA1Lのようにデシリアライズを行うクラスを使い分けるしかない(構成を変えた分のクラスAを残し続けないといけない)ということでしょうか?