Scalaのinner objectってスレッドセーフじゃない?
class Foo {
Bar.bar
object Bar {
def bar {}
}
}
public Foo();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokespecial #12; //Method java/lang/Object."":()V
4: aload_0
5: invokevirtual #18; //Method Bar:()LFoo$Bar$;
8: invokevirtual #23; //Method Foo$Bar$.bar:()V
11: return
LineNumberTable:
line 1: 0
line 2: 4
public final Foo$Bar$ Bar();
Code:
Stack=4, Locals=1, Args_size=1
0: aload_0
1: getfield #25; //Field Bar$module:LFoo$Bar$;
4: ifnonnull 19
7: aload_0
8: new #20; //class Foo$Bar$
11: dup
12: aload_0
13: invokespecial #28; //Method Foo$Bar$."":(LFoo;)V
16: putfield #25; //Field Bar$module:LFoo$Bar$;
19: aload_0
20: getfield #25; //Field Bar$module:LFoo$Bar$;
23: areturn
LineNumberTable:
line 4: 0
同期化、何もされてないから、マルチスレッドで呼んだら、複数インスタンスできそうだな。





