วีดีโอ: สองคลาสสามารถมี serialVersionUID เดียวกันได้หรือไม่
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ใช่ เป็นไปได้ว่า สอง แตกต่าง คลาสมีได้ NS ซีเรียลเวอร์ชันเดียวกันUID ค่า. แต่ชอบที่จะใช้อันที่ไม่ซ้ำกันสำหรับแต่ละอัน ระดับ . และใช้ตัวเลขที่ยาวกว่า 8 ถึง 10 หลักแทนที่จะเป็น 1 เป็นค่า
ดังนั้น serialVersionUID คืออะไร?
พูดง่ายๆ คือ serialVersionUID เป็นตัวระบุเฉพาะสำหรับคลาส Serializable ใช้ในระหว่างการดีซีเรียลไลซ์เซชันของอ็อบเจ็กต์ เพื่อให้แน่ใจว่าคลาสที่โหลดนั้นเข้ากันได้กับอ็อบเจ็กต์ที่ทำให้เป็นอนุกรม
ในทำนองเดียวกัน serialVersionUID 1l มีประโยชน์อย่างไร? NS serialVersionUID เป็นตัวระบุเวอร์ชันสากลสำหรับคลาส Serializable ดีซีเรียลไลเซชัน ใช้ หมายเลขนี้เพื่อให้แน่ใจว่าคลาสที่โหลดนั้นสอดคล้องกับอ็อบเจ็กต์ที่เป็นอนุกรม หากไม่พบการจับคู่ InvalidClassException จะถูกส่งออกไป
ในทำนองเดียวกัน จะถูกถามว่า SerialVersionUID จำเป็นหรือไม่
ค่าเริ่มต้น serialVersionUID การคำนวณมีความไวสูงต่อรายละเอียดคลาสที่อาจแตกต่างกันไปขึ้นอยู่กับการใช้งานคอมไพเลอร์และ สามารถ จึงส่งผลให้เกิด InvalidClassException ที่ไม่คาดคิดในระหว่างการดีซีเรียลไลเซชัน จึงต้องประกาศ serialVersionUID เพราะมันทำให้เราควบคุมได้มากขึ้น
บทบาทของ serialVersionUID ในกระบวนการทำให้เป็นอันดับคืออะไร?
ในระหว่าง การทำให้เป็นอันดับ , รันไทม์ java เชื่อมโยงหมายเลขเวอร์ชันกับแต่ละ ทำให้เป็นอนุกรมได้ ระดับ. เบอร์นี้เรียกว่า serialVersionUID ซึ่งใช้ในระหว่างการดีซีเรียลไลเซชันเพื่อตรวจสอบว่าผู้ส่งและผู้รับของ a ต่อเนื่อง วัตถุได้โหลดคลาสสำหรับวัตถุนั้นที่เข้ากันได้กับ การทำให้เป็นอันดับ.
แนะนำ:
เหตุใดเราจึงเพิ่ม serialVersionUID
เหตุใดเราจึงใช้ SerialVersionUID: SerialVersionUID ถูกใช้เพื่อให้แน่ใจว่าในระหว่างการดีซีเรียลไลซ์เซชั่น คลาสเดียวกัน (ที่ใช้ระหว่างกระบวนการทำให้เป็นอันดับ) ถูกโหลด การทำให้เป็นอันดับ: ในช่วงเวลาของการทำให้เป็นอันดับ JVM ทุกด้านของผู้ส่งอ็อบเจ็กต์จะบันทึก Unique Identifier