0
点赞
收藏
分享

微信扫一扫

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


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

文章目录

  • ​​不序列的字段:transient和static目录​​
  • ​​前言​​
  • ​​一、是什么?​​
  • ​​二、使用步骤​​
  • ​​总结​​

前言

接上一篇

一、是什么?

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

二、使用步骤

假如我们有一个商品类

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


解决办法:

方式1: 如果某个属性不需要序列化,可以在属性的前面加一个关键字:transient

方式2:如果某个属性是static,那么也不会序列化。因为静态的变量不属于某个对象,而是整个类的,所以不需要随着对象的序列化而序列化。

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


然后再把系列化的代码写一遍测试一下

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


效果如下:

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


由此可见,sale字段确实没有被序列化我们再看第二种方式,用静态修饰属性

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


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

总结

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


举报

相关推荐

0 条评论