Ejemplo 03: Uso de Enum, Excepciones en Java
Descripción del Problema
Eres un desarrollador de software que necesita crear un programa en Java que maneje un conjunto de alimentos y sus categorías. Quieres utilizar enumeraciones (Enum) para definir las categorías de alimentos y manejar excepciones para gestionar errores como alimentos no encontrados o categorías inválidas.
Solución
Paso 1: Crear la enumeración (Enum)
Primero, creamos una enumeración llamada CategoriaAlimento que define las diferentes categorías de alimentos.
public enum CategoriaAlimento {
FRUTA,
VERDURA,
CARNE,
LACTEO,
GRANO
}
Paso 2: Crear la clase Alimento
Luego, creamos una clase Alimento que tiene un nombre y una categoría.
public class Alimento {
private String nombre;
private CategoriaAlimento categoria;
public Alimento(String nombre, CategoriaAlimento categoria) {
this.nombre = nombre;
this.categoria = categoria;
}
public String getNombre() {
return nombre;
}
public CategoriaAlimento getCategoria() {
return categoria;
}
@Override
public String toString() {
return nombre + " (" + categoria + ")";
}
}
Paso 3: Manejar excepciones
Ahora, creamos una clase AlimentoManager que maneja una lista de alimentos y utiliza excepciones para gestionar errores.
import java.util.ArrayList;
import java.util.List;
public class AlimentoManager {
private List<Alimento> alimentos;
public AlimentoManager() {
alimentos = new ArrayList<>();
}
public void agregarAlimento(Alimento alimento) {
alimentos.add(alimento);
}
public Alimento buscarAlimento(String nombre) throws AlimentoNoEncontradoException {
for (Alimento alimento : alimentos) {
if (alimento.getNombre().equalsIgnoreCase(nombre)) {
return alimento;
}
}
throw new AlimentoNoEncontradoException("Alimento no encontrado: " + nombre);
}
}
Paso 4: Crear la excepción personalizada
Finalmente, creamos una excepción personalizada llamada AlimentoNoEncontradoException para manejar el caso cuando un alimento no se encuentra en la lista.
public class AlimentoNoEncontradoException extends Exception {
public AlimentoNoEncontradoException(String mensaje) {
super(mensaje);
}
}
Paso 5: Usar el programa
Ahora podemos usar el programa para agregar alimentos y buscar un alimento específico, manejando las excepciones adecuadamente.
void main() {
AlimentoManager manager = new AlimentoManager();
manager.agregarAlimento(new Alimento("Manzana", CategoriaAlimento.FRUTA));
manager.agregarAlimento(new Alimento("Zanahoria", CategoriaAlimento.VERDURA));
manager.agregarAlimento(new Alimento("Pollo", CategoriaAlimento.CARNE));
try {
Alimento alimento = manager.buscarAlimento("Manzana");
System.out.println("Alimento encontrado: " + alimento);
// Intentar buscar un alimento que no existe
manager.buscarAlimento("Pera");
} catch (AlimentoNoEncontradoException e) {
System.out.println(e.getMessage());
}
}
Conclusión
En este ejemplo, hemos demostrado cómo utilizar enumeraciones (Enum) para definir categorías de alimentos y cómo manejar excepciones para gestionar errores de manera eficiente en Java. Esto permite que nuestro programa sea más robusto y fácil de mantener, ya que podemos manejar situaciones inesperadas sin que el programa se bloquee.
Ejemplo 02: Uso de clases genéricas en Java
En este ejemplo, se muestra cómo utilizar clases genéricas en Java para crear una clase de lista personalizada que puede almacenar cualquier tipo de datos.
Ejemplo 4: Clase con funciones genéricas de validación
En este ejemplo, crearemos una clase `InputValidator` que contiene funciones genéricas para validar diferentes tipos de entradas, como números enteros, correos electrónicos y fechas. Estas funciones lanzarán excepciones personalizadas si la validación falla.