手册
目录
收藏216
分享
阅读2981
更新时间2025-07-22
前言:
定义和用法transient 关键字是一个修饰符,用于指示 Java 在序列化对象时忽略某个属性。实例transient 关键字用于防止属性被序列化:impor
transient 关键字是一个修饰符,用于指示 Java 在序列化对象时忽略某个属性。
transient 关键字用于防止属性被序列化:
import java.io.*;
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.fname = "Bill";
person.lname = "Gates";
person.age = 19;
person.accessCode = 5044;
// 序列化对象
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
ObjectOutputStream objOut = new ObjectOutputStream(output);
objOut.writeObject(person);
} catch (IOException e) {}
// 反序列化对象
Person person2 = new Person();
try {
ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(output.toByteArray()));
person2 = (Person) objIn.readObject();
} catch(Exception e) {}
// 打印反序列化后的对象
System.out.println("名字: " + person2.fname);
System.out.println("姓氏: " + person2.lname);
System.out.println("年龄: " + person2.age);
System.out.println("访问代码: " + person2.accessCode); // 此处将打印出 0,因为 accessCode 被标记为 transient,所以未被序列化
}
}
class Person implements Serializable {
String fname = "Bill";
String lname = "Gates";
int age = 19;
transient int accessCode = 0; // 这个属性在序列化时会被忽略
}
点击 "运行实例" 按钮查看在线实例
在这个例子中,Person 类有一个 transient 修饰的 accessCode 属性。当 Person 对象被序列化时,accessCode 属性不会被包含在序列化数据中。因此,在反序列化后,accessCode 的值将恢复为其默认值(在这个例子中是 0),而不是序列化之前的值(5044)。
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77.2万人学习
共29课时
61.9万人学习
共25课时
39.4万人学习
共43课时
71.1万人学习
共25课时
61.8万人学习
共22课时
23万人学习
共28课时
34万人学习
共89课时
125.5万人学习