JavaSE 5.0 ha agregado soporte para enumeraciones. No daré más detalles sobre el uso de enumeraciones. En resumen, se pueden definir constantes en enumeraciones para que otras partes del programa las utilicen.
El tipo de enumeración incorporado en Java solo proporciona la definición del nombre de la enumeración, lo que implica 1, 2,. . Espere el valor real correspondiente.
Usando el tipo ValuedEnum en el paquete org.apache.commons.lang.enums, podemos proporcionar funciones más poderosas al extender esta clase. Como sugiere el nombre, ValuedEnum----es una enumeración con nombre. Podemos definir el nombre de la enumeración a voluntad. Esta clase proporciona muchos métodos, como getEnumMap, getEnumList, interator y otros métodos, para acceder a las constantes de la enumeración. clase. . He aquí un ejemplo de ello:
importar java.util.Iterator;
importar java.util.List;
importar java.util.Map;
importar org.apache.commons.lang.enums.ValuedEnum;
La clase final pública WeekDayEnum extiende ValuedEnum{
/**
*
*/
public static final long serialVersionUID = 732377557389126868L;
privado estático final int LUNES=1;
final estático privado int MARTES=2;
final estático privado int MIÉRCOLES = 3;
privado estático final int JUEVES = 4;
final estático privado int VIERNES=5;
final estático privado int SÁBADO = 6;
privado estático final int DOMINGO=7;
WeekDayEnum final estático público WEEKDAY_MONDAY_ENUM = new WeekDayEnum("Lunes",MONDAY);
WeekDayEnum final estático público WEEKDAY_TUESDAY_ENUM = new WeekDayEnum("Martes",TUESDAY);
WeekDayEnum final estático público WEEKDAY_WEDSDAY_ENUM = new WeekDayEnum("Miércoles",WEDSDAY);
WeekDayEnum final estático público WEEKDAY_THURSDAY_ENUM = new WeekDayEnum("Jueves",JUEVES);
WeekDayEnum final estático público WEEKDAY_FRIDAY_ENUM = new WeekDayEnum("Viernes",VIERNES);
WeekDayEnum final estático público WEEKDAY_SATDAY_ENUM = new WeekDayEnum("Sábado",SATDAY);
WeekDayEnum final estático público WEEKDAY_SUNDAY_ENUM = new WeekDayEnum("Domingo",DOMINGO);
protegido WeekDayEnum (nombre de cadena, valor int) {
super(nombre, valor);
}
WeekDayEnum estático público getEnum (tipo de cadena) {
return (WeekDayEnum)getEnum(WeekDayEnum.class, tipo);
}
WeekDayEnum estático público getEnum (tipo int) {
return (WeekDayEnum)getEnum(WeekDayEnum.class, tipo);
}
Mapa estático público getEnumMap(){
devolver getEnumMap(WeekDayEnum.class);
}
Lista estática pública getEnumList(){
devolver getEnumList(WeekDayEnum.class);
}
iterador público estático iterador(){
iterador de retorno();
}
Podemos llamar a los métodos en la clase del controlador a voluntad para obtener los resultados que queremos:
Por ejemplo: WeekDayEnum.WEEKDAY_MONDAY_ENUM accede al valor de la enumeración.
También podemos WeekDayEnum.getEnumList devuelve una colección de constantes definidas por la clase de enumeración.
Y devolver su colección de pares clave-valor de Map a través de WeekDayEnum.getEnumMap, etc.