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:

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

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

public class Jugador
{
   @AtributoNoEditable
   private int id;
   private String nombre ;
   //resto de implementación de la clase
}

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

System.out.println("nLista de Atributos");
System.out.println("================");
for(Field f: Class.forName("Jugador").getDeclaredFields())
{
     System.out.println(f.getName());
     //Primera forma posible
     if(f.isAnnotationPresent(AtributoNoEditable.class))
          System.out.print(" -Atributo No Editable-");
     //Segunda forma posible
     for(Annotation a: f.getAnnotations())
          if(a instanceof AtributoNoEditable)
               System.out.print(" -Atributo No Editable-");
     System.out.println();
}

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).

Comments are closed.