Este código no se compilará porque hay una referencia ilegal a un campo estático.¿Por qué este código enum es una referencia ilegal a un campo estático?
public enum Foo {
A,
B;
private Foo[] foos = new Foo[] { Foo.A };
}
¿No debería poder acceder a los campos estáticos de un inicializador de campo no estático? Por ejemplo:
public class Foo {
static int A;
private int[] foos = new int[] { Foo.A };
}
Esto compila bien.
Nota, haciendo foos
estático en el primer ejemplo de compilaciones.