สองคลาสสามารถมี serialVersionUID เดียวกันได้หรือไม่
สองคลาสสามารถมี serialVersionUID เดียวกันได้หรือไม่

วีดีโอ: สองคลาสสามารถมี serialVersionUID เดียวกันได้หรือไม่

วีดีโอ: สองคลาสสามารถมี serialVersionUID เดียวกันได้หรือไม่
วีดีโอ: Fix Eclipse's SerialVersionUID Warning Error 2024, เมษายน
Anonim

ใช่ เป็นไปได้ว่า สอง แตกต่าง คลาสมีได้ NS ซีเรียลเวอร์ชันเดียวกันUID ค่า. แต่ชอบที่จะใช้อันที่ไม่ซ้ำกันสำหรับแต่ละอัน ระดับ . และใช้ตัวเลขที่ยาวกว่า 8 ถึง 10 หลักแทนที่จะเป็น 1 เป็นค่า

ดังนั้น serialVersionUID คืออะไร?

พูดง่ายๆ คือ serialVersionUID เป็นตัวระบุเฉพาะสำหรับคลาส Serializable ใช้ในระหว่างการดีซีเรียลไลซ์เซชันของอ็อบเจ็กต์ เพื่อให้แน่ใจว่าคลาสที่โหลดนั้นเข้ากันได้กับอ็อบเจ็กต์ที่ทำให้เป็นอนุกรม

ในทำนองเดียวกัน serialVersionUID 1l มีประโยชน์อย่างไร? NS serialVersionUID เป็นตัวระบุเวอร์ชันสากลสำหรับคลาส Serializable ดีซีเรียลไลเซชัน ใช้ หมายเลขนี้เพื่อให้แน่ใจว่าคลาสที่โหลดนั้นสอดคล้องกับอ็อบเจ็กต์ที่เป็นอนุกรม หากไม่พบการจับคู่ InvalidClassException จะถูกส่งออกไป

ในทำนองเดียวกัน จะถูกถามว่า SerialVersionUID จำเป็นหรือไม่

ค่าเริ่มต้น serialVersionUID การคำนวณมีความไวสูงต่อรายละเอียดคลาสที่อาจแตกต่างกันไปขึ้นอยู่กับการใช้งานคอมไพเลอร์และ สามารถ จึงส่งผลให้เกิด InvalidClassException ที่ไม่คาดคิดในระหว่างการดีซีเรียลไลเซชัน จึงต้องประกาศ serialVersionUID เพราะมันทำให้เราควบคุมได้มากขึ้น

บทบาทของ serialVersionUID ในกระบวนการทำให้เป็นอันดับคืออะไร?

ในระหว่าง การทำให้เป็นอันดับ , รันไทม์ java เชื่อมโยงหมายเลขเวอร์ชันกับแต่ละ ทำให้เป็นอนุกรมได้ ระดับ. เบอร์นี้เรียกว่า serialVersionUID ซึ่งใช้ในระหว่างการดีซีเรียลไลเซชันเพื่อตรวจสอบว่าผู้ส่งและผู้รับของ a ต่อเนื่อง วัตถุได้โหลดคลาสสำหรับวัตถุนั้นที่เข้ากันได้กับ การทำให้เป็นอันดับ.

แนะนำ: