簡単にするために、私は問題の原因となるキー要素で発生しているエラーを再現しました。クラスのJavaの異なるインスタンス
私は3つのメインクラスを持っています。最初は、メソッドを初期化して設定するメインクラスです(メイン)。それから私はデータベースからコード(Init)にデータを引き出すデータベースクラスを持っています。第3に、GUI要素(アクセサー)を処理するGUIクラスがあります。
accessor.print()を呼び出すと、メインクラス(init.setUp)からデータベースクラス(accessor.setUp)で初期化した変数(メッセージ)がnullとして表示されるという問題が発生しました。メソッドをGUIクラスのActionListenerEventの後に追加します。
同じクラスのインスタンスが異なるため、この問題が発生することがありますが、解決方法がわかりません。
public class Init {
public String message;
public void setUp(){
message="Hello World";
}
public void print(){
System.out.println(message.length());
}
}
これは、アクセサクラスは次のとおりです:事前に
public class Accessor {
public void tryAccess(){
Init init=new Init();
init.print();
}
}
おかげ
public class main {
public static void main(String[] args){
Init init=new Init();
init.setUp();
Accessor acc=new Accessor();
acc.tryAccess();
}
}
これは、初期化クラスがある:
これはメインのクラスです。
なぜ、別々のインスタンスを使用していますか? – shmosel
作成されたinitインスタンスは、コンストラクタまたはtryAccess()メソッドの引数としてアクセサに渡すことができます。したがって、Initのインスタンスは1つだけです。また、インスタンス間でアクセスする必要がある場合は、静的変数としてメッセージを宣言することもできます。 – Santo