注解的概念
Java注解(Annotation)是从JDK5.0开始引进的新技术。
作用:不是程序本身,可以对程序作出解释。
可以被其他程序(如编译器等)读取。
格式:注解是以"@注释名"在代码中存在的,其还可以添加参数值。
如:@SuppressWarnings(value = “unchecked”)
在哪使用:可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。
内置注解
Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。
作用在代码的注解是:
※ @Override :定义在java.lang.Override中,此注释只适用与修辞方法;检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
※ @Deprecated :定义在java.lang.Deprecated中,此注释可以用于修辞方法,属性,类,表示不鼓励使用这样的元素,通常是因为它很危险或者存在更好的选择。
※ @SuppressWarnings :定义在java.lang.SuppressWarnings中,指示编译器去忽略注解中声明的警告。注:该注释需要添加一个参数才能正确使用,这些参数都是已经定义好的,选择性使用即可。
作用在其他注解的注解(元注解)是:
元注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明。
※ @Retention :标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。
※ @Target :用于描述注解的使用范围。
※ @Documented :标记这些注解是否包含在用户文档中。
※ @Inherited :标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
从 Java 7 开始,额外添加了 3 个注解:
※ @SafeVarargs :Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
※ @FunctionalInterface :Java 8 开始支持,标识一个匿名函数或函数式接口。
※ @Repeatable :Java 8 开始支持,标识某注解可以在同一个声明上使用多次。