java注解       

java注解

注解即为类或方法等打上一个标签,在运行时或编译时使用

注解是java的一个特性,他通过一个关键字@interface来定义

定义注解

public @interface TestAnnotation {
}

有点像定义一个类

public class testClass {
}

元注解

对注解的注解

@Retention、@Documented、@Target、@Inherited、@Repeatabl

retention

RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视

RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中

RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们

target

ElementType.ANNOTATION_TYPE 可以给一个注解进行注解
ElementType.CONSTRUCTOR 可以给构造方法进行注解
ElementType.FIELD 可以给属性进行注解
ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
ElementType.METHOD 可以给方法进行注解
ElementType.PACKAGE 可以给一个包进行注解
ElementType.PARAMETER 可以给一个方法内的参数进行注解
ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举

注解的属性

 public @interface TestAnnotation {
    int id();
 }   


@TestAnnotation(id=3)

注解的获取

public <A extends Annotation> A getAnnotation(Class<A> annotationClass) {}

public Annotation[] getAnnotations() {}