Java:静态瞬态字段

问题描述 投票:0回答:3

我刚刚发现在 Java 中你可以声明一个字段“静态瞬态”——编译器不会抱怨。这似乎没有任何用处,因为众所周知,静态字段没有序列化。

但我想知道,实际上是否存在“静态瞬态”字段有用的情况?

java serialization static field transient
3个回答
19
投票

不 - 你自己说过,静态字段没有序列化。

有点奇怪,编译器允许你这样做。


17
投票

在大多数情况下,它没有用。静态字段确实不会被默认序列化器序列化。

但是,

static
transient
场可以通过反射来检测。如果有人编写自己的序列化程序并且他还想序列化静态字段,那么他可能考虑使用
transient
关键字并跳过该特定字段的序列化。

PS:这个答案是为了完整起见而发布的,并且基于Peter Lawrey的评论。归功于他。


0
投票

我有一个情况,我想从子类中的 @Transient 方法调用抽象 @MappedSuperClass 中的 @Transient 方法。我需要使超类方法静态,否则它在子类中不可见。奇怪。

© www.soinside.com 2019 - 2024. All rights reserved.