注解
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"; // 注解的参数
}