たとえば、String str = "A" に初期化されたプライベート メンバーがあります。プログラム終了後、strを「B」にしたい。翌日、同じプログラムを実行すると、str の値は "A" ではなく "B" になっています。
ありがとうございました。
たとえば、String str = "A" に初期化されたプライベート メンバーがあります。プログラム終了後、strを「B」にしたい。翌日、同じプログラムを実行すると、str の値は "A" ではなく "B" になっています。
ありがとうございました。
データベースやディスク上のファイルなど、永続的なストレージの場所にデータを書き込む必要があります。
「翌日、同じプログラムを実行すると、str の値は "A" ではなく "B" になります。urs プログラムはどこにありますか?サーバーを起動してプログラムを再起動していますか?プログラムの最後の終了点で次のコードを呼び出します 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のフレームワークがいくつかありますが、これはアプリで探しているよりもはるかに複雑に思えます。