Annotations sobre atributos y métodos

Supongo que los interesados en las anotaciones de Java, ya habrán hecho su Hello World!con los tutoriales que nos facilita Sun (http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html), por ejemplo. Seguramente, quien desee profundizar se encuentre con alguna que otra duda. Aquí muestro un ejemplo de cómo las annotations a atributos con un caso práctico.

Anotaciones sobre atributos:

Paso 1. Se define la anotación:

  1. import java.lang.annotation.*;
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Target(ElementType.FIELD)
  4. public @interface AtributoNoEditable {}
  5.  

Paso 2. Se añade a la clase deseada:

  1. public class Jugador
  2. {
  3.    @AtributoNoEditable
  4.    private int id;
  5.    private String nombre ;
  6.    //resto de implementación de la clase
  7. }

Paso 3. Un ejemplo de Reflection sobre la clase y sus anotaciones:

  1. System.out.println("nLista de Atributos");
  2. System.out.println("================");
  3. for(Field f: Class.forName("Jugador").getDeclaredFields())
  4. {
  5.      System.out.println(f.getName());
  6.      //Primera forma posible
  7.      if(f.isAnnotationPresent(AtributoNoEditable.class))
  8.           System.out.print(" -Atributo No Editable-");
  9.      //Segunda forma posible
  10.      for(Annotation a: f.getAnnotations())
  11.           if(a instanceof AtributoNoEditable)
  12.                System.out.print(" -Atributo No Editable-");
  13.      System.out.println();
  14. }

Para la creación de anotaciones sobre métodos bastaría con especificarlo con el atributo de clase METHOD en la declaración de la Annotation: @Target(ElementType.METHOD).

Tags: ,

Comments are closed.