java.swing を使用してアプリケーションを構築しています。メイン パネル、グリッド パネル (正方形を表示する)、および詳細パネル (各正方形の詳細を表示して編集できるようにする) があります。正方形もオブジェクトです。
マウス クリックをリッスンするメイン パネルがあり、グリッド パネルをクリックすると、グリッド パネルは四角形の ArrayList を調べ、クリックした四角形を見つけて返します。この正方形は、メイン パネルからディスプレイ パネルに渡され、ローカル変数 currentSquare が、渡された正方形と等しくなるように設定されます。
私が混乱しているのは、currentSquare を編集できることと、ArrayList 内の対応する正方形が編集されていることです! currentSquare のパブリック変数を変更したり、セッターを使用してそれらを変更したりできますが、効果は同じです。これは私が望んでいる効果ですが、編集された currentSquare を ArrayList に戻し、古い正方形を置き換えるには、ある種のゲッター/セッターが必要であるという印象を受けました。
なぜこれが起こっているのかについての私の現在の理論は、正方形がカスタムオブジェクトであるため、Java の参照と関係があるということですが、これが事実なのか、何が原因なのかはわかりません。最終的に、私はこの状況を引き起こすために何をしたかを知りたいのですが、これをそのままにしておくか、これに基づいて構築することが良い/大丈夫なプログラミングの実践であるかどうか (そして、このように動作するように構築した場合、それが壊れる可能性はどれくらいですか? )。