だから、私はprivate Secondary secondary = new Secondary();
それが実行されるときに呼び出す私のメインクラスを持っています。セカンダリクラスの上部には、というコードがありますprivate Main main = new Main();
。
スタックオーバーフローエラーを発生させることなく、Secondaryクラスのすべてのメソッドと変数を使用したり、その逆を実行したりするにはどうすればよいですか?
注:コンストラクターには含まれていません
だから、私はprivate Secondary secondary = new Secondary();
それが実行されるときに呼び出す私のメインクラスを持っています。セカンダリクラスの上部には、というコードがありますprivate Main main = new Main();
。
スタックオーバーフローエラーを発生させることなく、Secondaryクラスのすべてのメソッドと変数を使用したり、その逆を実行したりするにはどうすればよいですか?
注:コンストラクターには含まれていません
MainクラスがSecondaryインスタンスを作成しており、これがMainインスタンスを作成しています...これにより、スタックオーバーフローエラーが発生しています。
オブジェクトが相互に参照するようにしたいだけなので、コンストラクターで他のクラスの新しいインスタンスを作成しないでください。参照をインスタンス変数として宣言し、setterメソッドを使用して、他のタイプのオブジェクトへの既存の参照を格納します。
ビルダーパターンを使用して、インスタンスフィールドの安全な(非再帰的な)初期化を(セッターを介して)処理できます。