注解
Annotation
写在代码中的特殊标记
这些标记可以在编译、类加载、运行时被读取,并执行相应的处理
注解一般跟反射有关系
元注解
修饰注解的注解
@Target:指定注解的修饰对象ElementType:修饰对象的类型ElementType.TYPE:类、接口、枚举ElementType.FIELD:字段ElementType.METHOD:方法ElementType.PARAMETER:方法的参数ElementType.CONSTRUCTOR:构造方法ElementType.PACKAGE:包ElementType.ANNOTATION:注解
@Retention:指定注解的保留时间RetentionPolicy:保留时间RetentionPolicy.SOURCE:源码,编译后就不保留了RetentionPolicy.CLASS:字节码,保留到.class中,可以给一些字节码工具使用RetentionPolicy.RUNTIME:运行时,可以通过反射获取
自定义注解
// 仅用作标注,具体逻辑不在这里
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() default "hello"; // 注解的参数
}