Mientras observa jhipster, he tropezado con la clase siguiente
public final class AuthoritiesConstants {
public static final String ADMIN = "ROLE_ADMIN";
public static final String USER = "ROLE_USER";
public static final String ANONYMOUS = "ROLE_ANONYMOUS";
private AuthoritiesConstants() {
}
}
Me preguntaba por qué no se utilizan enumeraciones como por ejemplo
public enum AuthoritiesConstants {
ROLE_ADMIN,
ROLE_RESPONSABLE,
ROLE_MANAGER,
ROLE_COLLABORATEUR
}
¿Hay algún inconveniente utilizando enumeraciones?
Una posible respuesta es que las enumeraciones se introdujeron en Java 1.5. Aunque esto parece historia antigua, algunas bibliotecas siguen utilizando las constantes de cadena o constantes numéricas por razones de compatibilidad.
Otra respuesta posible es que esos no son realmente semánticamente elementos de enumeración, pero constantes utilizadas por una interfaz externa y sólo alguna vez se accede a través de su cadena de valor. En tales casos, el uso de enumeraciones y llamando name()
cada vez sería redundante.
Aparte de eso, nunca se debe utilizar enumeraciones sobre las constantes de cadena en tales casos.