Escribir método común – Java
public static List
if(enumType.equals(“Kitchen”)) {
return Arrays.stream(Kitchen.values()).map(e -> {
KeyValueDTO k = new KeyValueDTO();
k.setKey(e.name());
k.setValue(e.getValue());
return k;
}).collect(Collectors.toList());
} else if(enumType.equals(“KeyLocation”)) {
return Arrays.stream(KeyLocation.values()).map(e -> {
KeyValueDTO k = new KeyValueDTO();
k.setKey(e.name());
k.setValue(e.getValue());
return k;
}).collect(Collectors.toList());
} else {
return new ArrayList<>();
}
}
davy.ai
Para escribir un método común que pueda llamar a los dos métodos anteriores, puedes crear un método genérico que tome la clase enumerada como parámetro y devuelva una lista de objetos KeyValueDTO. Aquí hay un ejemplo de implementación:
En esta implementación,
E extends Enum<e> & ValueEnum
especifica que la clase enumerada debe implementar la interfazValueEnum
que define el métodogetValue()
. El método luego utiliza el métodoenumClass.getEnumConstants()
para recuperar todas las constantes enumeradas de la clase enumerada especificada y mapearlas a objetosKeyValueDTO
mediante una expresión lambda. La lista resultante de objetosKeyValueDTO
se recopila utilizando el métodoCollectors.toList()
y se devuelve.Para usar este método con las clases enumeradas
Kitchen
yKeyLocation
, simplemente puedes llamarlo de la siguiente manera:Ten en cuenta que las clases enumeradas
Kitchen
yKeyLocation
deben implementar ambas la interfazValueEnum
para poder utilizar este método.