[Java 5.0] annotation

2285 vistas

Las annotation permiten poner "marcadores" en varios elementos del lenguaje. Éstos puedes ser usados por el compilador o otras utilerías de gestión de fuentes para automatizar ciertas tareas,....

En el código fuente, las annotation se distinguen por la presencia de una arroba (@) delante de los nombre (al estilo de los tags Javadoc) y se declara con la palabra clave @interface:

Declaración de una anotación simple:



java
  1. public @interface SimpleAnnotation {
  2. }



Declaración de una anotación con atributos:



java
  1. public @interface AttributAnnotation {
  2.   String value();
  3.   int count();
  4. }



Se usa poniendo la annotation delante del elemento a comentar.

Veamos un ejemplo lleno de annotation:



java
  1. @SimpleAnnotation
  2. public class MiClase {
  3. @SimpleAnnotation
  4. protected String name;
  5. @SimpleAnnotation protected int value;
  6. @AttributAnnotation(value="info", count=3);
  7. public MiClase () {
  8. }
  9. @SimpleAnnotation
  10. @AttributAnnotation(value="m", count=1);
  11. public void metodo () {
  12. }



Java 5.0 introduce tres annotation base:

  • @Deprecated: permite indicar que un elemento ha sido despreciado y no tiene que ser usado
  • @Override: delante de un método, indica que éste sobrecarga uno heredado de la clase padre
  • @SuppressWarning: permite ignorar algunos warnings en el momento de la compilación

También existen meta-annotation concevidas exclusivamente para ser usadas con otras annotation:

  • @Documented: permite indicar que la annotation tiene que incluirse en la documentación generada por javadoc
  • @Inherited: indica que la annotation tiene que ser heredada por las clases hijas
  • @Retention: especifica de qué manera el compilador y la JVM tienen que conservar la annotation
  • @Target: permite limitar los elementos del lenguaje que puedan tomar esta annotation

Además, Java 5.0 introduce una nueva utilidad de línea de comandos que permite analizar el código buscando las annotation antes de compilar: APT (Annotation Processing Tool).