ทำไมต้องมีWarning serialVersionUID

มันเป็น warning ขึ้นมากวนใจ ที่จะมีตลอดเวลาเราสร้าง class ใหม่ขึ้นมาแล้ว implement ถึง class Serializable
warning: [serial] serializable class Broadway has no definition of serialVersionUID

1
private static final long serialVersionUID = 1L;

ถ้า class serializable ไม่ได้ประกาศตัวแปร serialVersionUID ในกระบวนการ serialization จะคำนวณ ค่า default suid ให้เอง

เจ้าค่า serialVersionUID นั้นเป็นค่าที่ใช้สำหรับทำให้แน่ใจว่าถ้าเรามี class ที่ใหม่กว่า และจะไม่สามารถทำ deserialize ตัว instance ของ class ที่เก่ากว่าได้ มันก็มีไว้กรณีถ้าเราแก้ไข class นิด ๆ หน่อย ๆ เราก็อาจจะคงค่า serialVersionUID เลขเดิมได้ ถ้ามันไม่มีผลมาก แต่ถ้ามันมีผลมาก เราก็ควรเปลี่ยนค่าไปครับ

เดี๊ยวมีต่อไปประชุมก่อน ^^

Comments are closed.