23.02.2017 Views

Java

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

206<br />

11. Anotaciones<br />

anotaciones que solamente tienen un argumento deberían llamarlo value,<br />

así no es necesario especificarlo cada vez que se las quiere utilizar.<br />

Las anotaciones no pueden extender ninguna interfaz y tampoco<br />

pueden ser implementadas. Por lo tanto, una anotación no puede<br />

heredar de otra y tampoco forma jerarquías de tipos.<br />

Al momento de definir las anotaciones, debemos indicar sobre<br />

qué elementos pueden ser aplicadas y cuál es el alcance que tienen.<br />

Para definir los elementos objetivos de la anotación, decoraremos la<br />

declaración de esta con la anotación @Target. Ella permite especificar,<br />

mediante un array de enumeraciones del tipo ElementType, los<br />

objetivos. ElementType define los siguientes elementos: TYPE (clases e<br />

interfaces), CONSTRUCTOR (constructores), METHOD (métodos), FIELD<br />

(atributos), LOCAL_VARIABLE (variable local), PARAMETER (parámetro<br />

de un método), ANNOTATION_TYPE (declaración de una anotación, para<br />

definir meta anotaciones) y PACKAGE (declaración de un paquete).<br />

También para definir el alcance de la anotación lo hacemos decorándola<br />

con @Retention, que especifica si la anotación es solamente para<br />

tiempo de compilación (SOURCE), si debe estar en el binario de la<br />

clase pero no necesariamente en tiempo de ejecución (CLASS) y si<br />

debe ser mantenida, incluso en tiempo de ejecución, para poder ser<br />

inspeccionada (RUNTIME). Esta enumeración corresponde al tipo<br />

RetentionPolicy.<br />

@Retention(RetentionPolicy.RUNTIME)<br />

@Target(ElementType.METHOD)<br />

public @interface Test {<br />

…<br />

}<br />

Anotaciones en tiempo de compilación<br />

La mayoría de las anotaciones caseras se utilizan en tiempo de ejecución, pero también existe la opción<br />

de operar con ellas en tiempo de compilación. <strong>Java</strong> provee una herramienta llamada APT (Annotation<br />

Processing Tool), que permite enganchar nuestro código y dejarnos generar código, elevar alarmas o<br />

errores de compilación que dependen de las anotaciones encontradas en los códigos fuentes.<br />

www.redusers.com<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!