Ketika saya menggunakan Eclipse , ada fitur bagus untuk menghasilkan UID versi serial.
Tapi apa yang harus dilakukan di IntelliJ?
Bagaimana cara memilih atau menghasilkan UID versi serial yang identik di IntelliJ?
Dan apa yang harus dilakukan saat Anda memodifikasi kelas lama?
Jika Anda belum menentukannya id
, ini dibuat saat runtime ...
java
serialization
intellij-idea
nazar_art
sumber
sumber
serialVersionUID
dihasilkan oleh kompilator jika tidak ditentukan. Menentukan memiliki keuntungan (dan bahaya) menjaga identitas tetap identik untuk versi kelas yang diubah. Artinya file dengan objek versi lama akan dibaca (deserialized) dengan versi baru atau sebaliknya.Jawaban:
Tanpa plugin apa pun:
Anda hanya perlu mengaktifkan sorotan: (Idea v. 2016, 2017 dan 2018, versi sebelumnya mungkin memiliki pengaturan yang sama atau serupa)
Sekarang, jika kelas Anda mengimplementasikan
Serializable
, Anda akan melihat sorotan dan alt + Enter pada nama kelas akan diusulkan untuk dihasilkanprivate static final long serialVersionUID
.UPD: cara yang lebih cepat untuk menemukan pengaturan ini - Anda dapat menggunakan hotkey
Ctrl+Shift+A
(menemukan tindakan), ketikSerializable class without 'serialVersionUID'
- yang pertama adalah yang pertama.sumber
Metode termudah:
Alt
+Enter
aktifIntelliJ akan menggarisbawahi spasi setelah
=
. letakkan kursor Anda di atasnya dan tekanalt
+Enter
(Option
+Enter
di Mac). Anda akan melihat popover yang bertuliskan "Randomly Change serialVersionUID Initializer". Cukup tekan enter, dan itu akan mengisi ruang itu dengan panjang acak.sumber
Instal plugin GenerateSerialVersionUID
sumber
serialVersionUID
. Ini menangani kasus ketika Anda telah memperbarui kelas anak dan perlu membuat serialVersionUID baru untuk kelas ini tanpa mengubah serialVersionUID kelas induk (dalam kasus di mana tidak ada perubahan yang dibuat ke kelas induk).IntelliJ IDEA Plugins / GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185
sangat bagus, sangat mudah dipasang. Anda dapat menginstalnya dari menu plugin, pilih instal dari disk, pilih file jar yang Anda buka di folder lib. restart, control + in, dan muncul untuk menghasilkan serial UID dari menu. suka. :-)
sumber
dengan di editor kode, Buka kelas yang UID-nya ingin Anda buat, Klik kanan -> Generate -> SerialVersionUID. Anda mungkin perlu menginstal plugin GenerateSerialVersionUID agar ini berfungsi.
sumber