เบื้องต้นเกี่ยวกับ serialversionuid
เมื่อพูดถึงการส่งวัตถุในระหว่างการเขียนโปรแกรมใหม่เราจะนำเทคโนโลยีการทำให้เป็นอนุกรมผ่านการทำให้เป็นอนุกรมกระบวนการของการแปลงข้อมูลสถานะของวัตถุเป็นรูปแบบที่สามารถจัดเก็บหรือส่งผ่าน ใน Java เราสามารถทำให้เป็นอนุกรมวัตถุได้โดยการใช้อินเทอร์เฟซแบบอนุกรมและ SerialVersionuid เป็นบทบาทที่ขาดไม่ได้ในกลไกการทำให้เป็นอนุกรม Java เราสามารถตรวจสอบความสอดคล้องของเวอร์ชันโดยการตัดสิน serialversionuid ของชั้นเรียนที่รันไทม์ เมื่อ deserializing JVM จะเปรียบเทียบ serialversionuid ในกระแสไบต์ที่ผ่านกับ serialversionuid ของเอนทิตีที่สอดคล้องกันในท้องถิ่น (คลาส) หากการพิจารณาเดียวกันนั้นสอดคล้องกันก็สามารถ deserialized มิฉะนั้นจะมีข้อยกเว้นที่มีเวอร์ชันการทำให้เป็นอนุกรมที่ไม่สอดคล้องกันจะเกิดขึ้น
เมื่อเราใช้ Intellij Idea เพื่อเขียนคลาสและใช้อินเตอร์เฟส serializable (serialized) เราอาจพบปัญหาดังกล่าวนั่นคือ:
serialversionuid ไม่สามารถสร้างได้โดยอัตโนมัติ
serialVersionUID เป็นอีกหนึ่งสาขาที่สำคัญมากเนื่องจากกลไกการทำให้เป็นอนุกรมของ Java ตรวจสอบ serialVersionUID ของชั้นเรียนที่รันไทม์เพื่อตรวจสอบความสอดคล้องของรุ่น เมื่อ deserializing JVM จะเปรียบเทียบ serialVersionUID ในกระแสไบต์ที่ผ่านกับ serialVersionUID ของเอนทิตีที่สอดคล้องกันในท้องถิ่น (คลาส) หากการพิจารณาเดียวกันนั้นสอดคล้องกันก็สามารถ deserialized มิฉะนั้นจะมีข้อยกเว้นที่มีเวอร์ชันการทำให้เป็นอนุกรมที่ไม่สอดคล้องกันจะเกิดขึ้น
โดยทั่วไปการพูดมีสองวิธีในการกำหนด serialVersionUID คือ:
1L โดยเฉพาะแบบ private static final long serialVersionUID = 1L;64 บิตตามชื่อคลาสชื่ออินเตอร์เฟสวิธีการสมาชิกและแอตทริบิวต์ตัวอย่างเช่น private static final long serialVersionUID = XXXL;มีวัตถุประสงค์หลักสองประการสำหรับการทำให้เป็นอนุกรมของคลาส Java คือ::
ที่นี่มาดูวิธีการใช้ Ideallij Idea เพื่อสร้าง serialVersionUID โดยอัตโนมัติ
ขั้นตอนที่ 1: ติดตั้งปลั๊กอิน GenerateserialVersionuid
ดังที่แสดงในรูปด้านบนคลิก Preferences เพื่อป้อนอินเทอร์เฟซต่อไปนี้:
ที่นี่เลือก Plugins และค้นหา GenerateSerialVersionUID หากคุณไม่พบปลั๊กอินนี้คุณสามารถคลิก Search in repositories เพื่อค้นหา:
ดังที่แสดงในภาพด้านบนคลิก install เพื่อติดตั้งเพื่อติดตั้งปลั๊กอินนี้
ขั้นตอนที่ 2: ตั้งค่าฟังก์ชั่นการตรวจสอบ
ดังที่แสดงในรูปด้านบนให้ป้อน Default Settings ในหน้าการตั้งค่า Inspections ตรวจสอบ Serializable class without 'serialVersionUID' และคุณยังสามารถกำหนดระดับพรอมต์ใน Severity เช่น Warning Error ฯลฯ ซึ่งค่าเริ่มต้นเป็นการ Warning ขอแนะนำให้เลือกพรอมต์ระดับ Warning
ดังที่แสดงในรูปด้านบนสร้างคลาสและใช้อินเตอร์เฟส Serializable จากนั้นกด alt + Enter เพื่อรับพรอมต์และเลือก SerialVersionUID :
ดังที่แสดงในรูปด้านบนเราได้ใช้ความคิด Intellij เพื่อสร้าง serialVersionUID โดยอัตโนมัติ!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น