【发布时间】:2016-05-08 18:38:31
【问题描述】:
如果在不同的类中有多个引用(在下面的例子中是 pitfallOne、pitfallTwo 和 pitfallThree)对同一个对象的引用是否足以将其中一个标记为 transient 以防止该对象的序列化(考虑到这些类将被序列化)?如果不是,应该标记为transient?
我不确定类结构在这里是否重要,所以就这样吧:
class Zero {
...
}
class One {
...
Zero pitfallOne = new Zero();
}
class Two {
...
One instOne = new One();
transient Zero pitfallTwo = instOne.pifallOne;
}
class Three {
...
Two instTwo = new Two();
Zero pitfallThree = instTwo.pifallTwo;
}
【问题讨论】:
-
您只能将引用的字段标记为瞬态,而不是对象。如果你想防止一个对象被序列化,你必须将每个可能指向它的字段标记为瞬态。
标签: java serialization transient