Peran serialVersionUID:
Untuk menjaga kompatibilitas versi selama serialisasi, deserialisasi tetap mempertahankan keunikan objek saat versi diupgrade.
Ada dua metode pembangkitan:
Salah satunya adalah 1L default, misalnya: private static final long serialVersionUID = 1L;
Salah satunya adalah dengan menghasilkan bidang hash 64-bit berdasarkan nama kelas, nama antarmuka, metode anggota dan atribut, dll., seperti:
serialVersionUID panjang akhir statis pribadi = xxxxL;
Ketika kelas Anda mengimplementasikan antarmuka Serializable, jika serialVersionUID tidak ditentukan, Eclipse akan menyediakan ini
Fungsi prompt memberitahu Anda untuk mendefinisikannya. Di Eclipse, klik ikon peringatan di kelas, dan Eclipse akan melakukannya
Dua metode generasi diberikan secara otomatis. Jika Anda tidak ingin mendefinisikannya, Anda juga bisa
Anda dapat mematikannya dan mengaturnya sebagai berikut:
Window ==> Preferensi ==> Java ==> Compiler ==> Kesalahan/Peringatan ==>
Potensi masalah pemrograman
Ubah saja peringatan kelas Serializable tanpa serialVersionUID menjadi abaikan.
Jika Anda tidak mempertimbangkan masalah kompatibilitas, matikan, tetapi ada baiknya memiliki fungsi ini. Selama kategori apa pun mengimplementasikan antarmuka Serializable, Eclipse akan memberi Anda peringatan jika serialVersionUID tidak ditambahkan kelas Serializable kompatibel ke belakang.
Jika kelas Anda berseri dan disimpan ke hard disk, tetapi kemudian Anda mengubah bidang kelas (menambah atau mengurangi atau mengganti nama), Pengecualian akan muncul ketika Anda melakukan Deserialize, yang akan menyebabkan masalah ketidakcocokan.
Namun jika serialVersionUID sama, ia akan melakukan Deserialize bidang yang berbeda dengan nilai tipe default, yang dapat menghindari masalah ketidakcocokan.