>假设有一个变量
int a = 10;
当我再次运行程序并访问数据时,当我以某种方式访问它时,情况是一样的。然后我能够改变它,假设
a = a + 6;
之后,除非我将其更改为其他内容,否则值保持不变。
有没有办法做这样的事情?
注意:不想使用文件和/或外部数据库。
下载 Java Prefernces API: https://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html
然后键入:
import java.util.prefs.*;
public class Example {
public static final int a = 10;
public void savePreference(int value) {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
prefs.put(a, value);
}
public int readPreference() {
Preferences prefs = Preferences.userNodeForPackage(Example.class);
return prefs.get(a, "default");
}
public void main (String args[]){
// Read
myValue = readPreferences();
// Modify
myValue = myValue + 6;
// Save
savePreferences(myValue);
}
}
希望这有帮助
No.程序状态仅在其执行期间存在。
如果您希望a
的状态在执行之间保持不变,则必须以某种方式将的值存储在应用程序之外。
如果您不想使用文件或数据库,则可以使用 Java 首选项 API。
您也可以使用环境变量,但这很棘手。
对于像我这样的初学者来说,还有一点。感谢员工
import java.util.prefs.Preferences;
public class DataClass {
public void createPreference(String name, int value) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if (prefs.getInt(name, -1) == -1) {
prefs.putInt(name, value);
System.out.println("Created For you, "+name+" with value: "+value);
} else {
System.out.println("Already Exist");
}
}
public int readPreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
return prefs.getInt(name, -1);
}
public void updatePreference(String name) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
int val = prefs.getInt(name, -1);
if (val != -1) {
val++;
prefs.remove(name);
prefs.putInt(name, val);
System.out.println("New Value of "+name+" is: "+prefs.getInt(name, -1));
}
}
public void removePreference(String key) {
Preferences prefs = Preferences.userNodeForPackage(DataClass.class);
if(prefs.getInt(key, -1) != -1){
prefs.remove(key);
System.out.println("Removed: "+key);
}else{
System.out.println("No Such Data in: "+key);
}
}
}