serialVersionUIDtransient
2024-04-23 18:35:39
serialVersionUID
用对象序列化流序列化了一个对象后,假如我们修改了对象所属的类文件,读取数据会不会出问题呢?
会出问题,会抛出InvalidClassException异常
如果出问题了,如何解决呢?
重新序列化
给对象所属的类加一个serialVersionUID
private static final long serialVersionUID = 42L;
transient
如果一个对象中的某个成员变量的值不想被序列化,又该如何实现呢?
给该成员变量加transient关键字修饰,该关键字标记的成员变量不参与序列化过程
示例代码
学生类
public class Student implements Serializable {private static final long serialVersionUID = 42L;private String name;
// private int age;private transient int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}// @Override
// public String toString() {
// return "Student{" +
// "name='" + name + '\'' +
// ", age=" + age +
// '}';
// }
}
测试类
public class ObjectStreamDemo {public static void main(String[] args) throws IOException, ClassNotFoundException {
// write();read();}//反序列化private static void read() throws IOException, ClassNotFoundException {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("myOtherStream\\oos.txt"));Object obj = ois.readObject();Student s = (Student) obj;System.out.println(s.getName() + "," + s.getAge());ois.close();}//序列化private static void write() throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myOtherStream\\oos.txt"));Student s = new Student("林青霞", 30);oos.writeObject(s);oos.close();}
}
serialVersionUIDtransient相关推荐
- Java19-day10【标准输入输出流、字节字符打印流、对象序列化-反序列化流、serialVersionUIDtransient、Properties】
视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...
最新文章
- 【1】用命令行搭建Vue项目
- 搜索引擎之---Apache solr的实现
- springBoot单元测试-模拟MVC测试
- boost::pool模块实现验证是否 malloc/free 宏一切仍然正常的测试程序)
- UA Web挑战会议:针对初创公司的SpringIO
- 华为VLAN间互访配置
- linux系统安装m1136打印机,Ubuntu 安装及共享打印机
- 保定市2017年计算机高考试题,保定三中名师第一时间点评2017年高考理综试卷
- Bulma 教程,Bulma 指南,Bulma 实战,Bulma 中文手册
- 【最新】报表开发工具-->FineBI安装与启动---Windows
- 维谛技术(Vertiv):一切研发创新都以客户需求为核心
- 国开教育学形考任务2试题1试题及答案
- g第十四周,十五周作业
- c#跳出循环break与continue
- Erigon 最新执行客户端安装教程
- 二值图像blob分析
- 【kmp】似乎在梦中见过的样子
- 小程序兼容苹果底部安全距离
- Datepicker日期选择器插件
- EMUI10的分布式技术:跨越互联、连接万物