即使在关闭应用程序后如何使变量存储值?

时间:2014-05-08 17:32:20

标签: java save

我有这个类Launcher.java:

public class Launcher {

public static void main(String... args){

    new App();
    System.out.println( "Innovate's current build is : " + App.getBuild());
}


}

和App.java类:

import javax.swing.*;

public class App extends JFrame {

static int build;

public App(){

    super("Innovate");
    setBuild(getBuild() + 1);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500,200);
    setResizable(false);

}

public static void setBuild(int inc){
    build = inc;
}

public static int getBuild(){
    return build;
}

}

我每次运行应用程序时都会尝试将内部版本号增加1,但无论何时运行它都会输出1并且不会增加,我将如何进行此操作?

感谢

3 个答案:

答案 0 :(得分:0)

您可以继续并序列化内部版本号。因为每次关闭应用程序时它都会丢失。

Here is a tutorial on how to serialize objects

答案 1 :(得分:0)

static int build;

当您从应用中退出时,您必须将内部版本号保存到文件中。创建第一个App类对象时,您已从文件中读取并将其保存到构建变量中。您可以使用静态初始化程序块来读取文件中的数据,因为静态块只执行一次:第一次创建该类的对象或第一次访问该类的静态成员时(即使您从未创建过该对象的静态成员)那个班。)

答案 2 :(得分:0)

正如其他人所提到的,您可以使用serialization来保持对象的状态,或者您可以将值读/写为属性文件。虽然这些可行,但我不确定它是你想要的最佳解决方案。如果您正在尝试跟踪应用程序的内部版本号,通常会将其作为项目中的静态值保留,并且每次真正部署应用程序时都会更改,无论是发布/快照/等。希望有所帮助。