我有一个课程,我需要在其中创建一个独特的计数器,类似于:
public class Foo {
private static int FOO_COUNT = 0
public static getNextCount(){
return ++FOO_COUNT;
}
//... more methods...
}
计数器值必须在Java VM重新启动,应用程序重新部署等之间保持持久性,以便在整个应用程序生命周期中提供连续计数器。
如何(以及如果)可以实现(最好不使用DB或类似的持久性机制)?
答案 0 :(得分:2)
您需要序列化您的对象,然后您可以将其保存在这样的位置,例如:
import java.io.*;
public class SerializeDemo {
public static void main(String [] args) {
private static int FOO_COUNT = 0;
try {
FileOutputStream fileOut =
new FileOutputStream("/tmp/save.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(FOO_COUNT);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in /tmp/save.ser");
} catch (IOException i) {
i.printStackTrace();
}
}
}
public class Foo implements java.io.Serializable {
private static int FOO_COUNT = 0
public static getNextCount(){
return ++FOO_COUNT;
}
//... more methods...
}