注解

注解

1、起一个标志的作用

2、注解不能单独存在

3、注解使用的位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public enum ElementType {
// 类与接口
TYPE,
// 属性
FIELD,
// 方法
METHOD,
// 参数
PARAMETER,
// 构造器
CONSTRUCTOR,
// 局部变量
LOCAL_VARIABLE,
// 注解类型Annotation type declaration
ANNOTATION_TYPE,
// 包类型 Package declaration
PACKAGE
}

4、注解起作用的范围

有下面范围:

  • source 源码级别
  • classes 字节码级别
  • runtime 运行时级别(经常用的范围)

5、自定义注解

// 注解使用的位置
@Target(ElementType.TYPE)
// 起作用的范围
@Retention(RetentionPolicy.RUNTIME)
// 能出现在帮助文档中
@Documented
public @interface ClassAnnotation {
    String name() default "";
}

说明:

  • 1、该注解只能用于类上 @Target(ElementType.TYPE)
  • 2、该注解的范围:java,class,runtime都可以
  • 3、该注解有一个属性name,为String类型,默认值为””

要想获得类上面的注解,先获得类(Class);
要想获得方法上面的注解,先获得方法(Method)

方法名 用法
Annotation getAnnotation(Class annotationType) 获取注解在其上的annotationType
Annotation[] getAnnotations() 获取所有注解
isAnnotationPresent(Class annotationType) 判断当前元素是否被annotationType注解
Annotation[] getDeclareAnnotations() 与getAnnotations() 类似,但是不包括父类中被Inherited修饰的注解