-4

複数のオブジェクトから同じArrayListをどのように参照できるのでしょうか。以下は実際の例ではなく、説明のみを目的としています。

CarCatalogフィールドのあるクラスがある場合ArrayList

ArrayList<Car> cars = new ArrayList<>();

次に、とのインスタンスを作成し、それを使用しCarCreatorてフィールドをCarDeleter渡します。cars

CarCreator creator = new CarCreator(this.cars);

そして、パラメータをCarCreatorオブジェクトのフィールドに割り当てます。

class CarCreator {
    ArrayList<Car> cars;

    public CarCreator(ArrayList cars) {
        this.cars = cars;
    }
}

Carここで、オブジェクトをに追加するCarCreator

this.cars

CarCatalogs現場にも出てくるのでしょうか?

4

1 に答える 1

3

です。あなたが書くとき:

ArrayList<Car> cars = new ArrayList<>();

車はではありませんArrayList。への参照ArrayListです。これは非常に重要です。なぜなら、渡すときはcars、元のリストへの参照を渡すからです。したがって、1つのオブジェクトのリストを変更すると、それらの変更が2番目のオブジェクトに表示されます。

ここには、不変オブジェクトに対する強い議論があります。つまり、変更できないオブジェクトです。明らかに、それは常に実用的ではないので、誰がリストを所有し、誰がリストを変更できるかを明確にし、可能な限りコピーまたは不変バージョンを渡す必要があります。これは、防御プログラミングと呼ばれることがよくあります。

于 2013-01-03T15:17:07.520 に答える