CC00087.bigdatajava——|Java&特殊类.V15|——|Java.v15|元注解概念|@Retention使用|
时间:2022-08-31 17:30:00
### --- 元注解的概念 ~~~ ——> 元注解是注解上的注解,或元注解是基本注解, ~~~ ——> 但它可以应用于其他注释。 ~~~ ——> 主要有元注释@Retention、@Documented、@Target、@Inherited、@Repeatable。
### --- 元注解@Retention ~~~ ——> @Retention 用于注释的生命周期,取值如下: ~~~ ——> RetentionPolicy.SOURCE 注释只保留在源码阶段, ~~~ ——> 当编译器被编译时,它将被丢弃和忽略。 ~~~ ——> RetentionPolicy.CLASS 注释只保留在编译过程中, ~~~ ——> 它不会被加载JVM 中、默认方式。 ~~~ ——> RetentionPolicy.RUNTIME 注释可以保留到程序运行时, ~~~ ——> 它将被加载进去JVM 因此,它们可以在程序运行中获得。
package com.yanqi.task10; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; //@Retention(RetentionPolicy.SOURCE) // 表示以下注释在源代码中有效 //@Retention(RetentionPolicy.CLASS) // 表示以下注释在字节码文件中有效,默认方式 @Retention(RetentionPolicy.RUNTIME) // 表示以下注释在运行过程中有效 // 若注释中没有成员,这种注释称为标记注释/标记注释 public @interface MyAnnotation { //public Direction value(); // 声明一个String成员变量类型,名字为value 类型有要求 public String value() default "123"; // 声明一个String成员变量类型,名称为value public String value2(); }
package com.yanqi.task10; // 表示将标签MyAnnotation贴在Person使用注释时使用类代码 成员参数名 = 成员参数值, ... //@MyAnnotation(value = "hello", value2 = "world") @MyAnnotation(value2 = "world") public class Person { private String name; private int age; }