getFoo() と getBar() をスレッドセーフにするにはどうすればよいですか? 同時に、あるスレッドが getFoo() を呼び出し、別のスレッドが getBar() を呼び出すことができるように...つまり、クラスレベルのロックで同期したくありません..
private static Foo foo;
private static Bar bar;
private static void initBar() {
bar = SomeOtherClass.getBarVal();
}
private static void initFoo() {
foo = SomeOtherClass.getFooVal();
}
public static Foo getFoo() {
if (foo == null) {
initFoo();
}
return foo;
}
public static Bar getBar() {
if (bar == null) {
initBar();
}
return bar;
}