-4

例如,我有一个私有成员初始化为 String str = "A"。程序完成后,我希望 str 成为“B”。然后,第二天当我运行同一个程序时,str 的值是“B”,而不是“A”。

谢谢你。

4

3 回答 3

5

您需要将数据写入持久存储位置,例如数据库或磁盘上的文件。

于 2013-03-21T02:57:49.480 回答
2

你能告诉更多关于“第二天当我运行同一个程序时,str的值是“B”,而不是“A”。你的程序驻留在哪里?你是否通过启动服务器再次启动程序?在程序的最后退出点调用以下代码 import java.lang.reflect.Field;

public class Reflection {
    String str = "A";
    void test(){
        Class test=    Reflection.class;
        try {
      Field aa=      test.getDeclaredField("str");
      aa.setAccessible(true);
      try {

        aa.set(this, "B");
        System.out.println(str);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


public static void main(String[] args) {
    Reflection test=new Reflection();
    test.test();
}
}
于 2013-03-21T03:33:46.627 回答
1

(扩展 SLaks 答案) - 如果您想在执行之间将任何信息保留在程序中,则该信息需要存储在程序外部的某个位置。这可以是数据库(通常用于大型/复杂程序)或文件(用于小型程序),或介于两者之间的任何内容(异地云存储等)。任何“保存文档”的桌面应用程序都使用相同的概念 - 它基本上是保存在文件中的状态,您可以通过程序重新加载。

Java 中的一个简单示例是使用属性文件 -这个问题给出了如何将信息写入属性文件的示例 - 您可以在下次启动应用程序时使用相关的 API 来读取这些属性。

如果您更喜欢冒险,Java 中有几个提供持久性功能的框架,但这听起来比您在应用程序中寻找的复杂得多。

于 2013-03-21T03:27:45.090 回答