Annotation其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理;利用Annotation程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。
Annotation提供了一种为程序元素设置元素数据的方法,可以用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被存储在Annotation的“name=value”对中。
Annotation是一个接口,程序通过反射获取指定程序元素的Annotation对象,通过该对象来获取注释里的元素。
1.基本Annotation
Annotation必须使用工具来处理,工具负责提取Annotation里包含的元素数据,工具还会根据这些元数据增加额外的功能,Java提供4个基本Annotation:
1>限定重写父类方法:@override
public class Fruit {
public void info(){
System.out.println("水果的info方法....");
}
}
class Apple extends Fruit{
@Override
public void info() {
System.out.println("苹果的info方法....");
}
}
@Override的作用是告诉编译器检查这个方法,保证父类包含一个被该方法重写的方法,否则会编译错误;主要是帮助我们避免一些低级的错误;@Override只能作用于方法,不能作用于其他程序元素。
2>标记已经过时:@Deprecated
用于表示某个程序元素(类、方法)已经过时,当其他程序使用已过时的类、方法时,编译器将会给出警告。
3>抑制编译器警告:@SuppressWarnings
用于指示该Annotation修饰的程序元素取消显示指定的编译警告