哪个是标记瞬态的正确方法?
Which is the proper way to mark transient?
如果在不同的class中有多个引用(下例中的pitfallOne、pitfallTwo和pitfallThree)是否足以标记只有其中一个作为 transient
来防止该对象的序列化(考虑到那些 classes 将被序列化)?如果不是,应该标记为 transient
?
我不确定 class 结构在这里是否重要所以让它像这样:
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;
}
临时标记附加到 class 的字段,而不是对象。由于每个 class 中都有一个新字段,因此应将其标记为瞬态。
如果在不同的class中有多个引用(下例中的pitfallOne、pitfallTwo和pitfallThree)是否足以标记只有其中一个作为 transient
来防止该对象的序列化(考虑到那些 classes 将被序列化)?如果不是,应该标记为 transient
?
我不确定 class 结构在这里是否重要所以让它像这样:
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;
}
临时标记附加到 class 的字段,而不是对象。由于每个 class 中都有一个新字段,因此应将其标记为瞬态。