Java语言滴transient

transient说明一个属性是临时的,不会被序列化。详看事例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class TestAnimal implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private transient String username;
	private String password;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public static void main(String[] args) {
		String path = "D:" + File.separator + "data.txt";
		File file = new File(path);
		TestAnimal ta = new TestAnimal();
		ta.setUsername("张三");
		ta.setPassword("李四");
		try {
			ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file));
			oo.writeObject(ta);
			ObjectInput oi = new ObjectInputStream(new FileInputStream(file));
			TestAnimal tt = (TestAnimal)oi.readObject();
			System.out.println(tt.getUsername()+tt.getPassword());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
输出:
null李四

猜你喜欢

转载自zhangchunxiao.iteye.com/blog/2195957
今日推荐