Anotaciones (I)

Prácticamente todos los dias cuando programamos con Java hacemos uso de anotaciones . Algunas de ellas nos son muy sencillas de manejar y otras no tanto .Sin embargo casi nunca nos tenemos que preocupar por como “crear” nuestras propias anotaciones . Este es un tema importante a la hora de desarrollar frameworks pero también a la hora de entender como las anotaciones funcionan.Vamos a dedicar algunos post a este tema. En este  primer post vamos a ver como definir una anotación sencilla y usarla para marcar un método.Como punto de partida tenemos un sencillo programa con un método main y un método “MetodoHola” que es invocado desde main.

A continuación mostramos su código fuente

public class Principal001 {

public static void main(String[] args) {

 mensaje();

}

 public static void mensaje() {

 System.out.println("hola desde un metodo anotado");

 }

}

Una vez tenemos el código fuente vamos a construir una anotación sencilla que nos permite marcar el método.

Para definir una anotación el código a construir se parece mucho al de un interface. Con la salvedad de que añade una @.

public @interface MarcarMetodo {

}

Una vez creada la anotación podemos utilizarla en nuestro programa para marcar un método.


public class Principal001 {

public static void main(String[] args) {

 mensaje();

}
 @MarcarMetodo
 public static void mensaje() {

 System.out.println("hola desde un metodo anotado");

 }

}

Acabamos de construir la anotación mas sencilla de todas. Sin embargo habitualmente las anotaciones soportan parámetros y la nuestra es tan sencilla que no tiene ninguno .Vamos a modificar el código de la anotación para que soporte un parámetro.

public @interface MarcarMetodo {

String descripcion();

}

Demonos cuenta que la anotación añade un método que nosotros luego podremos usar en nuestro como propiedad .

public class Principal001 {

public static void main(String[] args) {

 mensaje();

}
 @MarcarMetodo(descripcion = "primera anotacion")
 public static void mensaje() {

 System.out.println("hola desde un metodo anotado");

 }

}

Realizada esta operación ya tenemos construida nuestra primera anotación.