用transient关键字修饰的字段是不能被序列化的。当某些字段不想在网络上传输,而只希望在内存上时,可以使用此关键字。
public class User implements Serializable { private String id; private transient String age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString(){ return "id:{"+id+"},{age:"+age+"}"; } } public class TransientTest { public static void main(String[] args)throws Exception{ test(); } public static void test()throws Exception{ User user=new User(); user.setId("bonnie"); user.setAge("10"); File file=new File("D://file.txt"); FileOutputStream fileOutputStream=new FileOutputStream(file); ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream); objectOutputStream.writeObject(user); objectOutputStream.close(); FileInputStream fileInputStream=new FileInputStream(file); ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream); User user1=(User)objectInputStream.readObject(); objectInputStream.close(); System.out.println(user1);//id:{bonnie},{age:null} } }