実行時に各オブジェクトの一意のコピーを付与するためにシングルトンを使用しています。
Car object1= CarFactory.createCar(id);
ここで、createCarメソッドは次のとおりです。
private static ArrayList<Car> cars= new ArrayList<Car>();
public static synchronized Car createCar(int id){
Car result= new Car(id);
int index= cars.indexOf(result);
if (index==-1){
cars.add(result);
return result;
} else {
return cars.get(index);
}
}
問題は、このメソッドでは、「cars」コレクションのために各Carが常に参照を持ち、オブジェクトのメモリが解放されないことです。どうすれば改善できますか?