Anotaciones Java
Total Page:16
File Type:pdf, Size:1020Kb
@notaciones Manual de Uso Avanzado Título: Anotaciones Java. Manual de Uso Avanzado. Autor: Miguel Ángel Rodríguez Manzano. Versión: 1.1 (5 de Diciembre de 2017). Director: Sergio Gálvez Rojas. Titulación: Ingeniero en Informática. Departamento: Lenguajes y Ciencias de la Computación. Centro: Escuela Técnica Superior de Ingeniería Informática. Universidad de Málaga. - 1 - ÍNDICE DE CONTENIDOS 1.- ACERCA DEL MANUAL........................................................................................................................7 1.1.- Estructuración del contenido..........................................................................................................7 1.2.- Itinerarios de lectura......................................................................................................................8 1.3.- Anexos de código fuente.................................................................................................................8 2.- ORIGEN DE LAS ANOTACIONES.......................................................................................................9 2.1.- Creación de la plataforma Java......................................................................................................9 2.2.- Evolución de la plataforma Java hasta J2SE 1.5.........................................................................10 2.3.- Anotaciones en J2SE 1.5...............................................................................................................11 3.- CONCEPTOS BÁSICOS........................................................................................................................12 3.1.- Concepto de anotación..................................................................................................................12 3.2.- Procesamiento de anotaciones.....................................................................................................13 3.3.- Usos habituales de las anotaciones..............................................................................................14 4.- ANOTACIONES....................................................................................................................................15 4.1.- Sintaxis...........................................................................................................................................15 4.2.- Variantes sintácticas.....................................................................................................................15 4.2.1.- Anotación normal..................................................................................................................15 4.2.2.- Anotación marcadora (Marker Annotation)........................................................................16 4.2.3.- Anotación sencilla (Single Element Annotation).................................................................16 4.3.- Elementos de código anotables....................................................................................................17 4.4.- Ubicación de las anotaciones.......................................................................................................18 4.5.- Número de anotaciones................................................................................................................19 4.6.- Anotaciones repetibles (Java SE 8+)...........................................................................................20 5.- TIPOS ANOTACIÓN............................................................................................................................22 5.1.- Sintaxis..........................................................................................................................................22 5.2.- Tipos permitidos para los elementos...........................................................................................23 5.3.- Valores permitidos y por defecto en elementos..........................................................................24 5.4.- Meta-anotaciones sobre los tipos anotación...............................................................................24 5.5.- Cuadro de referencia de un tipo anotación..................................................................................25 5.6.- Ejemplo completo de tipo anotación...........................................................................................26 6.- META-ANOTACIONES PREDEFINIDAS..........................................................................................27 6.1.- @Target.........................................................................................................................................28 6.2.- @Retention...................................................................................................................................29 6.3.- @Inherited....................................................................................................................................31 6.4.- @Documented..............................................................................................................................32 6.5.- @Repeatable.................................................................................................................................34 7.- ANOTACIONES PREDEFINIDAS......................................................................................................35 7.1.- @Deprecated.................................................................................................................................35 7.2.- @Override.....................................................................................................................................36 7.3.- @SupressWarnings.......................................................................................................................37 7.4.- @SafeVarargs...............................................................................................................................39 7.5.- @FunctionalInterface..................................................................................................................40 8.- ANÁLISIS Y DISEÑO DE TIPOS ANOTACIÓN.................................................................................41 8.1.- Ventajas de las anotaciones..........................................................................................................41 8.2.- Inconvenientes de las anotaciones...............................................................................................41 8.3.- Cuándo usar anotaciones (y cuándo no).....................................................................................42 8.4.- Análisis de tipos anotación..........................................................................................................43 8.5.- Diseño de tipos anotación............................................................................................................44 8.6.- Conclusiones.................................................................................................................................47 9.- PROCESAMIENTO DE ANOTACIONES...........................................................................................48 9.1.- Conceptos básicos.........................................................................................................................48 - 2 - 9.2.- Procesamiento según la política de retención.............................................................................49 9.2.1.- Política de retención SOURCE.............................................................................................50 9.2.2.- Política de retención CLASS.................................................................................................50 9.2.3.- Política de retención RUNTIME...........................................................................................51 9.3.- Métodos de procesamiento de anotaciones.................................................................................51 9.3.1.- Compilador Java + Procesadores de anotaciones................................................................52 9.3.2.- Herramientas de manipulación de ficheros de clase...........................................................53 9.3.3.- Código Java usando reflexión...............................................................................................55 10.- PROCESAMIENTO J2SE 1.5.............................................................................................................58 10.1.- Introducción................................................................................................................................58 10.2.- Cómo funciona el procesamiento J2SE 1.5................................................................................59 10.3.- Componentes del procesamiento J2SE 1.5................................................................................62 10.3.1.- Procesadores de anotaciones J2SE 1.5...............................................................................62 10.3.1.1.- Procesadores de anotaciones.......................................................................................62 10.3.1.2.- Factorías de procesadores de anotaciones..................................................................63 10.3.1.3.- Descubrimiento de declaraciones a procesar.............................................................66 10.3.1.4.- Opciones para los procesadores desde línea de comandos........................................70