注解(Annotation)

注解()

注解的概述

  • 从 JDK5.0 开始,Java 增加了对元数据(MetaData)的支持,也就是注释(Annotation)
  • Annotation 其实就是代码里的特殊标记,这些标记可以再编译、类加载、运行时被读取,并执行相应的处理。通过使用 Annotation,程序员可以再不改变原有逻辑的情况下,再资源文件中嵌入一些补充信息
  • Annotation 可以想修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被保存再 Annotation 的“name = value”对中。
  • Annotation 能被用来为程序元素(类、方法、成员变量等)设置元数据。

基本的 Annotation(注解)

​ 使用 Annotation 时,要在其前面增加 @ 符号,并把该 Annotation 当成一个修饰符来使用。用于修饰他支持的程序元素。

  • 三个基本的 Annotation(注解):
    1. @Override:限定于重写父类方法,该注释只能用于方法
    2. @Deprecated:用于表示某个程序元素(类、方法等)已过时
    3. @SuppressWarmings:抑制编译器警告
import java.util.ArrayList;
import java.util.List;

public class Demo01 {
    public static void main(String[] args) {
        new TestB().test1();
        
        @SuppressWarnings({"rawtypes","useued"})//抑制 rawtypes 以及 useued 警告
        List list = new ArrayList();
    }
}

class TestA {
    public void test() {

    }
}

class TestB extends TestA {
    @Override//重写
    public void test() {
        super.test();
    }

    @Deprecated//过时
    public void test1() {//过时的元素中会穿插一个横线

    }
}

自定义 Annotation(注解)

  • 定义新的 Annotation 类型使用 @interface 关键字
  • Annotation 的成员变量在 Annotation 定义中以无参数方法的形式来声明。起方法名和返回值定义了该成员的名字和类型。
  • 可以在定义 Annotation 的成员变量时,为其指定初始值,指定成员变量的初始值可使用 default 关键字
  • 没有成员定义的 Annotation 成为标记,包含成员变量的 Annotation 成为元数据 Annotation
class TestA {
    public void test() {
		@TestAnnotation(id = 1,desc = "姓名")
    	String name;
    }
}

@Target(ElementType.FIELD)//定义这个注解类是给其他类的属性做注解
@Retention(RetentionPolicy.RUNTIME)//定义注解的生命周期为 RUNTIME(生命周期为整个程序的运行周期)
@Documented//将这个注解存放到 Doc 文档中
@interface TestAnnotation {
    public int id() default 0;//意为当你注解不填时,是否有默认值

    public String desc() default "";
}
上一篇:线段重合


下一篇:Android Annotation使用快速入门,Android入门