Java中的transient关键字介绍
transient说明一个属性是临时的,不会被序列化。
下面是一个Demo,name声明为transient,不被序列化
packagecom.zzs.tet;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.ObjectInput;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutput;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;
publicclassTransientDemoimplementsSerializable{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privatetransientStringname;
privateStringpassword;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
/**
*@paramargs
*@throwsIOException
*@throwsFileNotFoundException
*@throwsClassNotFoundException
*/
publicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException,ClassNotFoundException{
//TODOAuto-generatedmethodstub
Stringpath="D:"+File.separator+"object.txt";
Filefile=newFile(path);
TransientDemotransientDemo=newTransientDemo();
transientDemo.setName("姓名");
transientDemo.setPassword("密码");
ObjectOutputoutput=newObjectOutputStream(newFileOutputStream(file));
output.writeObject(transientDemo);
ObjectInputinput=newObjectInputStream(newFileInputStream(file));
TransientDemodemo=( TransientDemo)input.readObject();
System.out.println(demo.getName()+demo.getPassword());
}
}
输出结果:
null密码