「二重チェックのロックが壊れている」宣言を読みました。でも、関数でオブジェクトを作ってもいいのかな?
class Foo {
private Helper helper = null;
public Helper getHelper() {
if (helper == null)
synchronized(this) {
if (helper == null)
helper = createHelper();
}
return helper;
}
private Helper createHelper() {
return new Helper();
}
// other functions and members...
}