English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

为什么Java中没有序列化瞬时变量?

Testo

Le variabili istantanee sono variabili il cui valore non viene serializzato durante il processo di serializzazione. Quando deserializziamo questa variabile, otteniamo il valore predefinito della variabile. La serializzazione è il processo di persistenza di un oggetto Java in forma di sequenza di byte, che include i dati dell'oggetto e informazioni sul tipo dell'oggetto e sui tipi dei dati memorizzati nell'oggetto. La serializzazione trasforma il valore/stato di un oggetto Java in byte per inviarlo attraverso una rete o salvarlo. D'altra parte, la deserializzazione è il processo di conversione dei byte in un oggetto Java corrispondente.

Sintassi

private transient <member-variable>;

Esempio

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.append("Nome:\n");
      sb.append(this.name + "\n");
      sb.append("Età:\n");
      sb.append(this.age + "\n");
      sb.append("Occupazione:\n");
      sb.append(this.occupation);
      return sb.toString();
   }
}
// classe principale
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);
   }
}

Risultato di output

Nome:
AdithyaEtà:
Occupazione: 0
Java Developer