例如,我有一个私有成员初始化为 String str = "A"。程序完成后,我希望 str 成为“B”。然后,第二天当我运行同一个程序时,str 的值是“B”,而不是“A”。
谢谢你。
例如,我有一个私有成员初始化为 String str = "A"。程序完成后,我希望 str 成为“B”。然后,第二天当我运行同一个程序时,str 的值是“B”,而不是“A”。
谢谢你。
您需要将数据写入持久存储位置,例如数据库或磁盘上的文件。
你能告诉更多关于“第二天当我运行同一个程序时,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();
}
}
(扩展 SLaks 答案) - 如果您想在执行之间将任何信息保留在程序中,则该信息需要存储在程序外部的某个位置。这可以是数据库(通常用于大型/复杂程序)或文件(用于小型程序),或介于两者之间的任何内容(异地云存储等)。任何“保存文档”的桌面应用程序都使用相同的概念 - 它基本上是保存在文件中的状态,您可以通过程序重新加载。
Java 中的一个简单示例是使用属性文件 -这个问题给出了如何将信息写入属性文件的示例 - 您可以在下次启动应用程序时使用相关的 API 来读取这些属性。
如果您更喜欢冒险,Java 中有几个提供持久性功能的框架,但这听起来比您在应用程序中寻找的复杂得多。