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密码