Fundamentos de Java 16 - Anotaciones personalizadas

1. Metanotaciones

Meta-anotación: Además de usar directamente las anotaciones definidas por JDK, también podemos personalizar las anotaciones.En JDK 1.5, se proporcionan 4 clases de anotación estándar para anotar tipos de anotación, a las que llamamos meta-anotación (meta-anotación).), Ellos son:

@Objetivo

@Retención

@Documentado

@Heredado

2, @Objetivo

@Target: se usa para definir el alcance de la anotación que defina.
La enumeración que proporciona incluye principalmente:

public enum ElementType {
    
    
    /** 类、接口(包括注解类型)或枚举声明 */
    TYPE,

    /** 字段声明(包括枚举常量) */
    FIELD,

    /** 方法声明 */
    METHOD,

    /** 形参声明 */
    PARAMETER,

    /** 构造函数声明 */
    CONSTRUCTOR,

    /** 局部变量声明 */
    LOCAL_VARIABLE,

    /** 注解类型声明 */
    ANNOTATION_TYPE,

    /** 包装声明 */
    PACKAGE,

    /**
     * 类型参数声明
     * 
	 * 自从:1.8
     */
    TYPE_PARAMETER,

    /**
     * 模块声明
     *
     * 自从:1.8
     */
    TYPE_USE,

    /**
     * 模块声明
     *
     * 自从:9
     */
    MODULE
}

3, @ Retención

@Retención: describe el intervalo de tiempo para la retención de anotaciones

public enum RetentionPolicy {
    
    
    /**
     * 注解将被编译器丢弃 
     */
    SOURCE,

    /**
     * 注解在class文件中可用,但会被VM丢弃 ,这是默认行为。
     */
    CLASS,

    /**
     *注解会被编译器记录在类文件中,并在运行时由 VM 保留,因此它们可以被反射读取。
     *也可以看看:
     *
	 *reflect.AnnotatedElement
     */
    RUNTIME
}

4, @Documentado

@Documentado: describe si se debe conservar la información de las anotaciones al generar documentación de ayuda para una clase mediante la herramienta javadoc.

5, @ heredado

@Inherited: Hace que la anotación modificada por él sea heredable (si una clase usa una anotación modificada por @Inherited, sus subclases automáticamente tendrán la anotación).

Para obtener más información, consulte: anotaciones personalizadas de Java y obtención de anotaciones a través de la reflexión

Supongo que te gusta

Origin blog.csdn.net/Yearingforthefuture/article/details/122175473
Recomendado
Clasificación