Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความสำคัญของคีย์เวิร์ด SerialVersionUID ใน Java?


SerialVersionUID

  • SerialVersionUID จะต้องประกาศเป็น คงที่ส่วนตัวสุดท้ายยาว ตัวแปรในภาษาจาวา ตัวเลขนี้คำนวณโดยคอมไพเลอร์ตามสถานะของคลาสและแอตทริบิวต์ของคลาส นี่คือตัวเลขที่จะช่วยให้ JVM ระบุสถานะของอ็อบเจ็กต์เมื่ออ่านสถานะของอ็อบเจ็กต์จากไฟล์
  • SerialVersionUID สามารถใช้ได้ระหว่าง ดีซีเรียลไลเซชัน เพื่อตรวจสอบว่าผู้ส่งและผู้รับของวัตถุต่อเนื่องได้โหลดคลาสสำหรับวัตถุนั้นที่เข้ากันได้ w.r.t การทำให้เป็นอนุกรม . หากวัตถุดีซีเรียลไลซ์เซชั่นแตกต่างจากการทำให้เป็นอนุกรม ก็สามารถส่ง InvalidClassException .
  • ถ้า serialVersionUID ไม่ได้ระบุไว้ รันไทม์จะคำนวณ ค่าเริ่มต้น serialVersionUID คุณค่า สำหรับชั้นเรียนนั้นตามแง่มุมต่างๆ ของชั้นเรียน

ตัวอย่าง

import java.io.*;
class Employee implements Serializable {
   private static final long serialVersionUID = 5462223600l;
   int empId;
   String name;
   String location;
   Employee(int empId, String name, String location) {
      this.empId = empId;
      this.name = name;
      this.location = location;
   }
   void empData() {
      System.out.println("Employee Id is: "+ empId);
      System.out.println("Employee Name is: "+ name);
      System.out.println("Employee Location is: "+ location);
   }
}
public class EmployeeTest {
   public static void main(String[] args)throws Exception{
      Employee emp = new Employee(115, "Raja", "Hyderabad");
      emp.empData();
      FileOutputStream fos = new FileOutputStream("E:\\Employee.txt");
      ObjectOutputStream oos = new ObjectOutputStream(fos);
      oos.writeObject(emp);
      System.out.println("Object Serialized");
   }
}

ผลลัพธ์

Employee Id is: 115
Employee Name is: Raja
Employee Location is: Hyderabad
Object Serialized