在Java中,我们如何在序列化过程中存储静态变量的值?
最佳答案
与任何其他字段相同。
static String name;
// assign
name = "Bob";
// get
String n = name;
如果要将其保存到文件中,可以使用关闭 Hook 来写入数据,但这不能保证运行。每次数据更改时我都会将数据写入文件并在启动时加载它。
private static final String NAME_FILE = "name.txt";
static String name; static {
try {
name = FileUtils.readFileToString(NAME_FILE );
} catch (IOException e) {
name = "unknown";
}
public static String getName() { return name; }
public static void setName(String name) {
this.name = name;
try {
FileUtils.writeStringToFile(NAME_FILE, name);
} catch(IOException e) {
log.error(e);
}
}
您可以在序列化期间通过覆盖 wrireObject/readObject 来存储变量,但是,这是一个坏主意。您最好序列化静态值。
关于java - 有没有一种方法可以在序列化期间存储静态变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259454/