JAVA中的Transient

Java中的transient,是用于声明序列化的时候不被存储的。

例子:

package ThreadTest;

/**
 * Created with IntelliJ IDEA.
 * User: Blank
 * Date: 14-3-29
 * Time: 下午12:03
 */
import java.io.*;
import java.util.*;

class Logon implements Serializable {
    private Date date = new Date();
    private String username;
    private transient String password;
    Logon(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.toString() +
                "\n password: " + pwd;
    }
    public static void main(String[] args) {
        Logon a = new Logon("Hulk", "myLittlePony");
        System.out.println( "logon a = " + a);
        try {
            ObjectOutputStream o =
                    new ObjectOutputStream(
                            new FileOutputStream("Logon.out"));
            o.writeObject(a);
            o.close();
// Delay:
            int seconds = 5;
            long t = System.currentTimeMillis()
                    + seconds * 1000;
            while(System.currentTimeMillis() < t)
                ;
// Now get them back:
            ObjectInputStream in =
                    new ObjectInputStream(
                            new FileInputStream("Logon.out"));
            System.out.println(
                    "Recovering object at " + new Date());
            a = (Logon)in.readObject();
            System.out.println( "logon a = " + a);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
} ///:~

输出:

转自:http://www.blogjava.net/liuganquan/archive/2007/04/22/112591.html

posted @ 2014-03-29 12:14  丶Blank  阅读(1638)  评论(0编辑  收藏  举报