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

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s