Granda's Blog

JAVA:注解(Annotation)

注解的定义

  • 注解其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过注解,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
  • Annotation能够用来为程序元素(类、方法、成员变量等)设置元数据
  • 访问和处理Annotation的工具统称APT(Annotation Processing Tool)

5类基本的Annotation

  • @Override:用来指定方法的覆载
  • @Deprecate:用于标识某个程序元素(类、方法等)已过时
  • @SuppressWarnings:抑制编译器警告
  • @SafeVarargs:抑制堆污染警告
  • @FunctionalInterface:标识函数式接口

元Annotation

  • 用于修饰其他的Annotation定义
  • @Retention:指定被修饰的Annnotation可以保留多长时间
  • @Target:指定被修饰的Annotation能用于修饰哪些程序单元
  • @Documented:被修饰的Annotation类将被javadoc工具提取成文档
  • @Inherited:指定被修饰的Annotation将具有继承性(添加具有继承性Annotation的类的子类将自动被该Annotation修饰)

自定义Annotation

  • 定义新的Annotation类型使用@interface关键字
  • 示例
    1
    2
    3
    4
    5
    6
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface Test{
    String name() default "Joe";
    int age() default 20;
    }