我刚刚发现在 Java 中你可以声明一个字段“静态瞬态”——编译器不会抱怨。这似乎没有任何用处,因为众所周知,静态字段没有序列化。
但我想知道,实际上是否存在“静态瞬态”字段有用的情况?
不 - 你自己说过,静态字段没有序列化。
有点奇怪,编译器允许你这样做。
在大多数情况下,它没有用。静态字段确实不会被默认序列化器序列化。
但是,
static
transient
场可以通过反射来检测。如果有人编写自己的序列化程序并且他还想序列化静态字段,那么他可能考虑使用transient
关键字并跳过该特定字段的序列化。
PS:这个答案是为了完整起见而发布的,并且基于Peter Lawrey的评论。归功于他。
我有一个情况,我想从子类中的 @Transient 方法调用抽象 @MappedSuperClass 中的 @Transient 方法。我需要使超类方法静态,否则它在子类中不可见。奇怪。