したがって、このコードは試験で与えられたもので、問題は何が問題なのかということでした。タイプの新しいオブジェクトを作成するためのものですSomeClass
が、以前に作成されていない場合に限ります。
class Foo {
private SomeClass x = null;
public synchronized SomeClass getX() {
if (x == null)
x = new SomeClass();
return x;
}
}
私の推測では、それ以外の場合は複数のコピーが存在する可能性があるため、 x
andgetX
は static と宣言する必要がありますx
。あれは正しいですか?もしそうなら、それはコードの唯一の問題ですか?