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

เหตุใดตัวแปรชั่วคราวจึงไม่ทำให้เป็นอนุกรมใน Java


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

ชั่วคราว ตัวแปรคือตัวแปรที่มีค่า ไม่ถูกทำให้เป็นอันดับในระหว่างการทำให้เป็นอันดับ กระบวนการ. เราจะได้ ค่าเริ่มต้น สำหรับตัวแปรนี้เมื่อเราทำการดีซีเรียลไลซ์มัน

ไวยากรณ์

private transient <member-variable>;

ตัวอย่าง

import java.io.*;
class EmpInfo implements Serializable {
   String name;
   private transient int age;
   String occupation;
   public EmpInfo(String name, int age, String occupation) {
      this.name = name;
      this.age = age;
      this.occupation = occupation;
   }
   public String toString() {
      StringBuffer sb = new StringBuffer();
      sb.app*end("Name:"+"\n");
      sb.append(this.name+"\n");
      sb.append("Age:"+ "\n");
      sb.append(this.age + "\n");
      sb.append("Occupation:" + "\n");
      sb.append(this.occupation);
      return sb.toString();
   }
}
// main class
public class TransientVarTest {
   public static void main(String args[]) throws Exception {
      EmpInfo empInfo = new EmpInfo("Adithya", 30, "Java Developer");
      ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("empInfo"));
      oos.writeObject(empInfo);
      oos.close();
      ObjectInputStream ois = new ObjectInputStream(new FileInputStream("empInfo"));
      EmpInfo empInfo1 = (EmpInfo)ois.readObject();
      System.out.println(empInfo1);
   }
}

ผลลัพธ์

Name:
Adithya
Age:
0
Occupation:
Java Developer