transient 修饰符,主要用作于序列化和反序列化中作用,当变量由transient来进行修饰的时候,在序列化的时候,会忽略序列化,以阻止内容被写到硬盘中。
举例
@Data
class mybean(){
private String name;
transient String password = '123';
}
public class SerializationDemo {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
// 创建MyBean对象并设置name属性
MyBean myBean = new MyBean();
myBean.setName("John Doe");
// 序列化成JSON字符串
String serializedJson = mapper.writeValueAsString(myBean);
System.out.println("Serialized JSON: " + serializedJson);
// 反序列化
MyBean deserializedBean = mapper.readValue(serializedJson, MyBean.class);
System.out.println("Deserialized Bean:");
System.out.println("Name: " + deserializedBean.getName());
System.out.println("Password: " + deserializedBean.getPassword()); // transient字段不会恢复原有值
}
}
序列化后的值:
{
"name": "John Doe"
}
序列化后反序列化
在序列化后进行反序列化,MyBean 对象的状态将是:
Name: John Doe
Password: null (因为password字段是transient,所以在反序列化时不会恢复其初始值“123”)