Anotación Java
En programación, una Anotación Java es una forma de añadir metadatos al código fuente Java que están disponibles para la aplicación en tiempo de ejecución o de compilación. Muchas veces se usa como una alternativa a la tecnología XML.
Las Anotaciones Java pueden añadirse a los elementos de programa tales como clases, métodos, metadatos, campos, parámetros, variables locales, y paquetes. Al contrario que las etiquetas añadidas a la documentación Java y procesadas con las herramientas tales como XDoclet, las Anotaciones Java son completamente accesibles al programador, mientras que el software se ejecuta, usando reflexión.
Historia
editarLas Anotaciones Java fueron presentadas al Java Community Process como la especificación JSR-175 en 2002 y aprobadas en septiembre de 2004. Las Anotaciones empezaron a estar disponibles a partir de la versión 1.5 del JDK. La característica fue añadida al lenguaje de programación Java a través de dicha especificación.
Procesamiento
editarCuando se compila el código fuente de Java, el compilador Java almacena los metadatos de la Anotación en los ficheros/archivos de clases. Posteriormente, la JVM u otros programas pueden buscar los metadatos para determinar cómo interactuar con los elementos del programa o cambiar su comportamiento.
Sintaxis
editarDeclarar una Anotación es una variación de las etiquetas que han sido añadidas anteriormente a las secciones de comentarios.
Las Anotaciones toman la forma de una declaración de interfaz con un carácter @ precediéndola, y marcada opcionalmente con meta-anotaciones, como se ve debajo:
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD})
En el ejemplo anterior, tanto Retention como Target son ejemplos de Anotaciones.
Un ejemplo de la declaración de una anotación es la siguiente:
public @interface EjemploAnotacion{ }
Como se puede ver en el ejemplo anterior es sumamente sencillo, es declarar una interface solo que se le debe anteponer el símbolo "@"
Ventajas
editarLas Anotaciones permiten al programador declarar en su código fuente cómo debe comportarse el software. Esto es un ejemplo de cómo las construcciones de la Programación declarativa pueden añadirse al lenguaje procedimental.
Desventajas
editar- Añadir metadatos en tiempo de ejecución puede causar sobrecarga adicional de memoria.
- Hay pocos estándares que indiquen cómo usar las etiquetas de metadatos.