No puede poner un espacio en medio de un identificador.
Al hacerlo termina ese identificador y el analizador asume que lo que viene a continuación es un token válido en el contexto de esa declaración. Hay pocos (si los hay) lugares que serían legales.
nombres de valor convencional de Java serían:
propiedades
INDIA, // Or India,
RUSSIA, // Russia,
NORTH_AMERICA; // NorthAmerica;
Un enum
pueden tener asociados, como nombres legibles por humanos, por ejemplo,
public enum CountryAndOneContinent {
INDIA("India"),
RUSSIA("Russia"),
NORTH_AMERICA("North America");
private String displayName;
CountryAndOneContinent(String displayName) {
this.displayName = displayName;
}
public String displayName() { return displayName; }
// Optionally and/or additionally, toString.
@Override public String toString() { return displayName; }
}
estoy ambivalente sobre el uso de toString
para proporcionar representaciones de capa de presentación.
Prefiero que los métodos comuniquen explícitamente su propósito – es más expresivo y obvio.
toString
es bastante genérico, y permite solo una única representación. Es posible que se requieran formatos de salida múltiples según el contexto, los parámetros, etc. que toString
no permita.
Las ventajas de toString
incluyen el uso de operaciones de cadena predeterminadas en el objeto, y en este caso, utilizando valueOf
para traducir directamente de la versión legible para el ser humano al valor enum.
El acceso a este miembro tampoco sería posible; pensar en 'myEnum x = myEnum.north America'. Estos no serán cumplibles porque si uno permite tales nombres, ¿dónde establecer el final de un identificador? Tal vez la próxima línea de código o declaración debe ser incluida? – Matten
¡NO use letras minúsculas para las enumeraciones e incluso para el nombre de la clase! – banterCZ