哪个是标记瞬态的正确方法?

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 中都有一个新字段,因此应将其标记为瞬态。