transient关键字

用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}
    }
}
原文地址:https://www.cnblogs.com/BonnieWss/p/12102235.html