其他分享
首页 > 其他分享> > transient关键字

transient关键字

作者:互联网

什么是序列化

Java的serialization提供了一种持久化对象实例的机制,当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。

对于不想进行序列化的变量,使用 transient 关键字修饰。

transient 关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被 transient 修饰的变量值不会被持久化和恢复。

transient 一般在实现了Serializable接口的类中使用

class Transient implements Serializable {
    private String name;
    private transient String address;
    private static String nation = "中国";

    // constructors, toString, getters and setters
}
@Test
public void testTransient() throws Exception {
    // 实例化一个对象
    Transient t = new Transient("Dallas", "上海");
    System.out.println("序列化前=====" + t);

    // 序列化进磁盘
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("transient.txt"));
    oos.writeObject(t);
    oos.close();

    // 反序列化
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("transient.txt"));
    t = (Transient) ois.readObject();
    System.out.println("序列化后=====" + t);

}

测试结果:

序列化前=====Transient{name='Dallas', address='上海', nation='中国'}
序列化后=====Transient{name='Dallas', address='null', nation='中国'}

注意点:

标签:对象,Transient,关键字,transient,修饰,new,序列化
来源: https://www.cnblogs.com/Dallas98/p/15158900.html