静的フィールドへの不正な参照があるため、このコードはコンパイルされません。なぜこの列挙型コードは静的フィールドへの不正な参照ですか?
public enum Foo {
A,
B;
private Foo[] foos = new Foo[] { Foo.A };
}
静的ではないフィールド初期化子から静的フィールドにアクセスできませんか?例:
public class Foo {
static int A;
private int[] foos = new int[] { Foo.A };
}
これはうまくコンパイルされます。
最初の例では、foos
を静的にコンパイルすることに注意してください。バイトコードに近いほぼ同等の、簡単な方法、で書き出さ