Singleton パターンを実装するために、次のコードを書きました。
public final class Test {
static final class TestHolder {
private static final Test INSTANCE = new Test();
}
private Test() {}
public static Test getInstance() {
return TestHolder.INSTANCE;
}
}
このファイルをコンパイルすると、Test.class と Test$TestHolder.class が生成されるはずですが、Test$1.class も生成されます。これは意味がありません。では、なぜ、どのようにこれが起こるのでしょうか?