16. Enumeraciones y anotaciones en Java

Cuando estás aprendiendo a programar en Java, es esencial comprender el uso de enumeraciones y anotaciones, ya que son características poderosas que pueden hacer que tu código sea más organizado, legible y menos propenso a errores. En esta sección, cubriremos qué son las enumeraciones y anotaciones, cómo y cuándo usarlas en el desarrollo de software Java.

Enumeraciones

En Java, una enum es un tipo especial de clase que representa un grupo de constantes (variables inmutables, como variables finales). Las enumeraciones se utilizan cuando tienes valores que sabes que no cambiarán, como días de la semana, colores, direcciones, etc.


día de enumeración pública {
    DOMINGO LUNES MARTES MIÉRCOLES,
    JUEVES VIERNES SÁBADO
}

Puedes usar enumeraciones para realizar un seguimiento de un conjunto de valores fijos y evitar errores tipográficos que pueden ocurrir al usar cadenas o números enteros para representar estos valores fijos.

Constructores, métodos y variables en enumeraciones

Las enumeraciones en Java pueden tener constructores, métodos y variables de instancia. Esto le permite asociar datos y comportamientos adicionales con sus enumeraciones.


Color de enumeración pública {
    ROJO("#FF0000"), VERDE("#00FF00"), AZUL("#0000FF");

    código de cadena final privado;

    Color (código de cadena) {
        this.code = código;
    }

    cadena pública getCode() {
        código de retorno;
    }
}

En el ejemplo anterior, cada enumeración de color tiene un código de color asociado. Puede acceder a este código llamando al método getCode().

Métodos útiles en enumeraciones

Java proporciona algunos métodos útiles que puedes usar con enumeraciones:

  • values(): Devuelve una matriz que contiene todos los valores de la enumeración en el orden en que se declaran.
  • valueOf(String name): devuelve el valor de la enumeración con el nombre especificado.
  • ordinal(): devuelve la posición de la enumeración en la declaración (comenzando desde cero).

Notas

Las anotaciones en Java se utilizan para proporcionar información adicional al compilador o a las herramientas de desarrollo. No tienen ningún efecto directo sobre el funcionamiento del código que anotan.

Notas integradas

Java viene con algunas anotaciones integradas que puedes usar en tu código:

  • @Override: indica que un método está anulando un método de superclase.
  • @Deprecated: indica que un método o clase ya no debe usarse.
  • @SuppressWarnings: indica al compilador que ignore advertencias específicas.
  • @SafeVarargs: suprime las advertencias relacionadas con el uso de varargs con tipos genéricos.
  • @FunctionalInterface: indica que la interfaz está destinada a ser una interfaz funcional.

Definición de anotaciones personalizadas

También puedes crear tus propias anotaciones en Java. Esto se hace usando la palabra clave @interface. Las anotaciones personalizadas pueden tener elementos que se pueden configurar cuando se aplica la anotación.


importar java.lang.annotation.*;

@Retención(RetentionPolicy.RUNTIME)
@Destino(TipoElemento.MÉTODO)
público @interface Todo {
    Prioridad de enumeración pública {BAJA, MEDIA, ALTA}
    Estado de enumeración pública {STARTED, NOT_STARTED}
    Autor de cadena() predeterminado "Yash";
    Prioridad prioridad() por defecto Prioridad.LOW;
    Estado estado() Estado predeterminado.NOT_STARTED;
}

En el ejemplo anterior, la anotación @Todo se puede utilizar para marcar métodos que necesitan más trabajo. Tiene tres elementos: autor, prioridad y status, cada uno con un valor predeterminado.

Usar anotaciones

Aplicas anotaciones a declaraciones como clases, métodos o variables. Se puede acceder a las anotaciones en tiempo de ejecución mediante la reflexión, lo que le permite escribir código que se comporta de manera diferente según las anotaciones presentes.


ejemplo de clase pública {
    @Todo(prioridad = Todo.Prioridad.HIGH, autor = "Carlos", estado = Todo.Status.STARTED)
    método incompleto vacío público () {
        // código que aún no está completo
    }
}

En el ejemplo anterior, el método incompleteMethod está marcado con la anotación @Todo, lo que indica que el método es una tarea continua, con alta prioridad y un autor específico.

Procesamiento de anotaciones

Las anotaciones se pueden procesar en tiempo de compilación o en tiempo de ejecución. En tiempo de compilación, las anotaciones pueden procesarse mediante herramientas de generación de código o analizadores estáticos. En tiempo de ejecución, las anotaciones se pueden procesar mediante reflexión, lo que permite que el código inspeccione sus propias anotaciones.

Conclusión

Las enumeraciones y anotaciones son funciones avanzadas de Java que proporcionan formas potentes de expresar la intención.Limpia y controla el comportamiento de tu código. Las enumeraciones lo ayudan a administrar conjuntos fijos de constantes de manera segura, mientras que las anotaciones le permiten proporcionar metadatos adicionales para su código que pueden ser utilizados por el compilador o las herramientas de desarrollo. Comprender estos conceptos es esencial para cualquier programador de Java que quiera escribir código limpio, fácil de mantener y robusto.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de los siguientes métodos se utiliza en Java para devolver todos los valores de una enumeración en el orden en que se declaran?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Manejo de excepciones y jerarquía de excepciones en Java

Siguiente página del libro electrónico gratuito:

102Manejo de excepciones y jerarquía de excepciones en Java

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.