【发布时间】:2011-07-10 21:53:52
【问题描述】:
就像我们使用序列化保存instance variables 的方式一样,有什么方法可以保存static 成员的状态吗?
如果有一种情况,需要恢复静态成员的状态来恢复某些东西,该怎么做?
【问题讨论】:
-
使用任何东西,据我所知,我们无法使用序列化保存静态成员,序列化是例如成员/对象。
-
类的静态成员会在将类加载到 jvm 后重新构建自己,因此无需保存该状态。这是你要找的吗?
-
“重构”是什么意思?它们将被创建,但将使用默认值进行初始化,对吗?所以他们正在恢复我猜的任何价值。
-
@CoolBeans @Salman 我不是 Java 用户,但静态的东西仍然有状态,不是吗?它可能有难闻的气味,但我可以想象在某些情况下,您希望恢复类的静态状态,而不仅仅是重新初始化它。
-
@10101010 使用“Singleton”来存储这个“静态”的东西在这里可能很有用——它需要修改代码,如果对静态成员做了更棘手的事情,可能还需要一些评论.通过适当的控制,Singleton 对象本身可能是一个静态成员——有所有的注意事项。然后可以像任何其他对象一样对 Singleton 对象进行序列化/反序列化。
标签: java serialization static static-members