将可序列化对象存储到文件中,但不包括某些数据
问题描述:
我有一个对象,它允许将BufferedImage存储到我的对象文件中。在同一个对象中,我使用BufferedImage变量来缓存从原始数据数组第一次加载后的图像。当我创建对象并将其存储到文件时,一切正常,因为BufferedImage为空。当我更新加载对象并且变量正在被初始化时,问题就出现了,我想在对象更新后保存对象。将可序列化对象存储到文件中,但不包括某些数据
有没有可能将可序列化的对象存储到文件中,排除某些变量?或者,也许我可以在存储到文件时以某种方式重置我的BufferedImage变量?
在此先感谢, Serhiy。
答
你应该标记你不希望序列化为瞬态属性:
private transient BufferedImage image;
答
变量可以被标记为transient
。如果一个变量被标记为transient,那么当你的对象被序列化时它不会被序列化。
此外,当您从存储状态检索对象时,transient
变量将具有空值。所以你需要确保你在使用之前重新初始化瞬态变量。