Этот код не будет компилироваться, потому что существует недопустимая ссылка на статическое поле.
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
static.