概念

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 注解是元数据的一种形式,提供有关于程序但不属于程序本身的数据。注解对它们注解的代码的操作没有直接影响。

注解本身没有任何意义,单独的注解就是一种注释,它需要结合其他技术(反射,插桩等)才有意义。

java中所有的注解,默认实现Annotation接口:

package java.lang.annotation;
public interface Annotation {
    boolean equals(Object obj);
    int hashCode();
    String toString();
    Class<? extends Annotation> annotationType();
}

与class不同的是,注解的声明使用@interface关键字.一个注解的声明如下:

public @interface DullFan{}

Java自带的注解

元注解

在定义注解时,注解类也能够使用其他注解声明,对注解类型进行注解的注解,称为meta-annottion(元注解).在定义自定义注解时,需要指定的元注解有两个: @Target 和 @Retention

@Target(目标)

注解标记另一个注解,限制使用场景

@Target有下面的取值: