Java Enum es un tipo especial de clase. Su forma simple y útil sobre todo no contiene campos personalizados:
public enum ErrorCodes {
Undefined, Defined, Foo, Bar
}
magia compilador crea la clase que se ve aproximadamente como la siguiente:
public class ErrorCodes {
public final static ErrorCodes Undefined = new ErrorCodes();
public final static ErrorCodes Defined = new ErrorCodes();
public final static ErrorCodes Foo = new ErrorCodes();
public final static ErrorCodes Bar = new ErrorCodes();
}
Esta magia compilador espera que la derecha campos definición después de la cabecera de enumeración.
Sol fuera tan amable que nos permitirá añadir estos campos que siguen a la definición de los miembros eunum: ErrorCodes public enum { Indefinido, Definido, Foo, Bar; private String myField; }
Este es el motivo por el que su código personalizado siempre debe definirse después de los campos enum.
+1 - Si la orden no estuviera vinculada, las enumeraciones serían más difíciles de leer, la sintaxis sería más difícil de analizar y los mensajes de error de sintaxis serían menos comprensibles. –