JAVA| transient keyword

הסבר: מטרתה של המילה השמורה transient, הוא פשוט להגדיר משתנה מסוים שלא יבוצע עליו סיריאליזציה, קרי לא נעביר את המשתנה ב"צינור המידע". ניתן לקחת כדוגמא אובייקט שמועבר בסוקט מסוים, שבתוכו אחד מהמשתנים הוא transient, ז"א שבעת העברת האובייקט דרך הסוקט (כמובן יממש את ממשק הסיריאליזציה), המשתנה הספציפי הזה בתוך האובייקט לא יועבר.

אני אתן פה דוגמא דווקא של כתיבה לתוך קובץ, שגם מבצע סיריאליזציה לתוך הקובץ.

public class MainClass {

 

  public static void main(String[] argsthrows Exception {

 

    User a = new User("A""B");

 

    System.out.println("logon a = " + a);

 

    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("User.out"));

 

    o.writeObject(a);

 

    o.close();

 

    Thread.sleep(1000)// Delay for 1 second

 

    ObjectInputStream in = new ObjectInputStream(new FileInputStream("User.out"));

 

    System.out.println("Recovering object at " new Date());

 

    a = (Userin.readObject();

 

    System.out.println("logon a = " + a);

 

  }

 

}

 

class User implements Serializable {

 

  private Date date = new Date();

 

  private String username;

 

  private transient String password;

 

  public User(String name, String pwd) {

 

    username = name;

 

    password = pwd;

 

  }

 

  public String toString() {

 

    String pwd = (password == null"(n/a)" : password;

 

    return "logon info: \n   username: " + username + "\n   date: " + date + "\n   password: "

 

        + pwd;

 

  }

 

}

 

 

תהנו 🙂
מאת chenreuven פורסם ב-Java, Types