繁体   English   中英

Java声明持久化静态变量

[英]Java declare persistent static variable

我有一个类,需要在其中创建一个唯一的计数器,如下所示:

public class Foo {
    private static int FOO_COUNT = 0

    public static getNextCount(){
        return ++FOO_COUNT;
    }
    //... more methods...
}

计数器值必须在Java VM重新启动,应用程序重新部署等之间保持不变,以便在整个应用程序生命周期中提供连续的计数器。

如何(以及是否)可以实现(最好不借助数据库或类似的持久性机制)?

您需要序列化对象,然后可以像这样将其保存到本地,例如:

  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...
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM