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

Pourquoi Java n'a pas de sérialisation de variables instantanées ?

La sérialisation est le processus de persistance des objets Java sous forme de séquence d'octets, cette séquence d'octets inclut les données de l'objet ainsi que des informations sur le type de l'objet et le type des données stockées dans l'objet. La sérialisation consiste à enregistrer les valeurs/L'état est converti en octets pour être envoyé via le réseau ou sauvegardé. D'autre part, la désérialisation consiste à convertir les octets en l'objet Java correspondant.

Les variables instantanées sont celles dont la valeur n'est pas sérialisée pendant le processus de sérialisation. Lorsque nous désérialisons cette variable, nous obtenons la valeur par défaut de cette variable.

Syntaxe

private transient <membre-variable>;

Exemple

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*fin("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();
   }
}
// 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);
   }
}

Résultat de la sortie

Name:
AdithyaAge:
0Occupation:
Développeur Java