我刚发现在Java中你可以声明一个字段为 "static transient" - 编译器不会抱怨。这似乎没有任何用处,因为我们都知道静态字段不会被序列化。
但我想知道是否有一种情况下 'static transient' 字段是有用的?
我刚发现在Java中你可以声明一个字段为 "static transient" - 编译器不会抱怨。这似乎没有任何用处,因为我们都知道静态字段不会被序列化。
但我想知道是否有一种情况下 'static transient' 字段是有用的?
不行-你自己说了,静态字段不会被序列化。
虽然编译器允许这样做有点奇怪。
在大多数情况下,这是没有用处的。默认的序列化器确实不会序列化静态字段。
然而,static
transient
字段可以通过反射检测到。如果有人编写了自己的序列化器并且想要序列化静态字段,那么他可能会考虑使用 transient
关键字并跳过特定字段的序列化。
注:此答案仅供完整性考虑,并基于Peter Lawrey的评论。感谢他。