Annotation其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被获取,并执行相应的处理。通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
注解可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。这些信息被保存在注解的name=value中。
注解能被用来为程序元素(类、方法、成员变量等)设置元数据。
使用Annotation时要在其前面加一个@符号,并把该Annotation当成一个修饰符使用,用于修饰它支持的程序元素。
三个基本的Annotation:
自定义注解:
定义新的注解类型使用@interface关键字;
注解的成员变量在注解定义中以无参数的形式声明,其方法名和返回值定义了该成员的名字和类型;
可以在定义注解的成员变量时为其指定初始值,指定成员变量的初始值可使用default关键字;
没有成员定义的注解称为标记,包含成员变量的注解称为元数据注解;
class TestA{
@TestAnn(id=100,desc="姓名")
String name;
public void test() {
}
}
@Target(ElementType.FIELD)//这个注解类是给其它类的属性做这是注释
@Retention(RetentionPolicy.RUNTIME)//定义注解的生命周期
@Documented
@interface TestAnn{
public int id() default 0;
public String desc() default "";
}