00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰

2022年9月8日08:15:37

不序列的字段:transient和static目录

前言

接上一篇

一、是什么?

如果我们有一个需求:要求对象中有些属性不需要序列化
而且实际开发中确实也有这种情况
不是所有的对象属性都需要序列化的

二、使用步骤

假如我们有一个商品类
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰
解决办法:
方式1: 如果某个属性不需要序列化,可以在属性的前面加一个关键字:transient
方式2:如果某个属性是static,那么也不会序列化。因为静态的变量不属于某个对象,而是整个类的,所以不需要随着对象的序列化而序列化。
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰
然后再把系列化的代码写一遍测试一下
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰
效果如下:
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰
由此可见,sale字段确实没有被序列化

我们再看第二种方式,用静态修饰属性
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰
00022.16 序列化与反序列化三:有些属性不需要序列化的处理办法用transient或者static修饰

总结

如果在序列化的过程中有些属性不需要序列化的解决办法
方式1: 如果某个属性不需要序列化,可以在属性的前面加一个关键字:transient
方式2:如果某个属性是static,那么也不会序列化。因为静态的变量不属于某个对象,而是整个类的,所以不需要随着对象的序列化而序列化。

  • 作者:EP_007
  • 原文链接:https://blog.csdn.net/qq_41753340/article/details/109667329
    更新时间:2022年9月8日08:15:37 ,共 460 字。