Nota de anotación de Java

concepto basico

Anotación, Annotation, es una característica introducida en JDK 1.5 y versiones posteriores, se puede declarar delante de clases, campos, métodos, etc., para explicar y anotar estos elementos.

1. Metanotaciones

Algunas meta-anotaciones se definen en Java para explicar otras anotaciones, incluyendo principalmente las siguientes cuatro:

  • @Objetivo
  • @Retención
  • @Documentado
  • @Heredado

A continuación explicamos la función y los parámetros comunes de cada meta-anotación.

1. @Objetivo

Esta metaanotación se utiliza para describir el ámbito de uso de la anotación, es decir, dónde se puede utilizar la anotación marcada. Los valores comúnmente utilizados son los siguientes:

  • CONSTRUCTOR: constructor
  • CAMPO: campo
  • LOCAL_VARIABLE: variable local
  • MÉTODO: método
  • PAQUETE: paquete
  • PARÁMETRO: parámetro
  • TIPO: clase, interfaz (incluido el tipo de anotación) o declaración de enumeración

2. @Retención

Esta meta-anotación se utiliza para definir el período de retención de Annotation .

Algunas anotaciones solo aparecen en el código fuente y el compilador las descarta, mientras que otras se compilarán en el archivo de clase.

Los valores comúnmente utilizados son los siguientes:

  • FUENTE: válido en el archivo fuente (el archivo fuente se conserva), cuando el archivo Java se compila en un archivo de clase, la anotación se descarta.
  • CLASE: válido en el archivo de clase (clase reservada), descartado cuando se carga el archivo de clase.
  • RUNTIME: válido en tiempo de ejecución (reservado en tiempo de ejecución)

Obviamente, la duración de la vida: FUENTE < CLASE < TIEMPO DE EJECUCIÓN.

selección de ciclo de vida

Para la selección del ciclo de vida de la anotación, puede consultar el siguiente uso:

  1. Si necesita obtener información de anotaciones dinámicamente en tiempo de ejecución , solo puede usar RUNTIME .
  2. Si necesita realizar algunas operaciones de preprocesamiento en tiempo de compilación (como APT en este artículo), puede elegir usar CLASS .
  3. Si solo realiza algunas operaciones de verificación, como @Override y @SuppressWarnings, puede usar SOURCE.

3. @Documentado

Esta meta-anotación indica que esta anotación debe ser documentada por la herramienta javadoc.

Por defecto, javadoc no incluye comentarios.

Sin embargo, si se especifica al declarar la anotación @Documented, será procesada por herramientas como javadoc, por lo que la información del tipo de anotación también se incluirá en la documentación generada.Es una anotación de etiqueta y no tiene miembros.

4. @heredado

La metaanotación @Inherited es una anotación de marcador que indica que se hereda un tipo anotado.

Si se usa un tipo de anotación modificado con @Inherited para una clase, la anotación se usará para las subclases de la clase.

Efecto
  • El rol de @Inherited en la relación de herencia de clases

    En la relación de herencia de clase, la subclase heredará las anotaciones modificadas por @Inherited en las anotaciones utilizadas por la clase padre

  • El papel de @Inherited en la relación de herencia de la interfaz

    En la relación de herencia de interfaz, la interfaz secundaria no heredará ninguna anotación en la interfaz principal, independientemente de si las anotaciones utilizadas en la interfaz principal son modificadas por @Inherited

  • El rol de @Inherited en la relación de interfaz de implementación de clase

    Cuando una clase implementa una interfaz, no hereda ninguna anotación definida en la interfaz.

2. Anotaciones personalizadas

Las anotaciones personalizadas se pueden usar @interfacepara la herencia automática java.lang.annotation.Annotation接口, y el compilador completa automáticamente otros detalles. El formato del código es el siguiente:

元注解
public @interface 注解名 {
    定义体
}

Tipos de datos admitidos para parámetros de anotación:

  1. Todos los tipos de datos básicos (int, float, boolean, byte, double, char, long, short)
  2. tipo de cadena
  3. tipo de clase
  4. tipo de enumeración
  5. tipo de anotación
  6. Matrices de todos los tipos anteriores
Configuración de parámetros de tipo de anotación

Los parámetros se pueden utilizar de la siguiente manera:

  1. Solo use publico por defecto defaultestos dos permisos de acceso para modificar
  2. Los miembros de parámetros solo pueden usar tipos básicos
  • byte
  • corto
  • carbonizarse
  • En t
  • largo
  • flotar
  • doble
  • booleano
  • String, Enum, Class, anotaciones y otros tipos de datos
  1. Si solo hay un miembro de parámetro, es mejor establecer el nombre del parámetro en "valor", seguido de paréntesis.

Una vez que se define la anotación, se debe generar un procesador de anotaciones para procesar la anotación, como usar la tecnología APT.

Supongo que te gusta

Origin blog.csdn.net/cat_is_so_cute/article/details/122163027
Recomendado
Clasificación