一. 什么是注解
Annotation(注解)就是Java提供了一种为程序元素关联任何信息或任何元数据(metadata)的途径和方法。
也就是代码的一些特殊标记,这些标记在编译,加载和运行时被读取执行操作。
注解在开发过程中非常常见,例如java自身带的注解@Override,开发是使用spring框架是遇到的@Controller @Service @RequestMapping 以及利用aop自定义的注解,下面我们主要介绍下java自带的注解。
java中常见注解
原生注解:@Override,@Deprecated,@Suppvisewarnings
@Override
@Override是伪代码,表示重写。
主要作用:
1.表明对父类方法的重写,当作注释使用,提高代码可读性。
2.编译器可以验证@Override下面的方法名称是否跟父类中的方法一直,如果不一致就会报错。
源代码如下:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
@Deprecated
@Deprecated 方法已过期,不被建议使用的,可用于类上、方法上、属性上。
使用:
一般作用于代码暂时不适应,后期可能会被低啊偶,暂时先用注解注释掉,后期使用在讲注解去掉
源代码如下:
@Documented @Retention(RetentionPolicy.RUNTIME) public @interface Deprecated { }
@Suppvisewarnings
@Suppvisewarnings 作用是忽略警告。
主要和@Deprecated 一起使用,当调用呗@Deprecated 注释的方法是,编译器会提示警告,可以增加@Suppvisewarnings 忽略警告。
源代码如下:
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) @Retention(RetentionPolicy.SOURCE) public @interface SuppressWarnings { String[] value(); }
元注解
除了以上三个原生注解外,还有一种叫做元注解(元Annotation)。
元Annotation 就是修饰注解的。
常见的有@Retention 和@Target
@Retention:设置注解的生命周期,注明它在什么时期使用
SOURCE:注释将被编译器丢弃 ,仅开发时使用,编译运行时丢弃
CLASS:注释由编译器记录在类文件中 ,编译时读取使用
RUNTIME:注释将被编译器记录在类文件中, 运行时读取。
@Target:表明注解的使用位置(比如方法,成员变量,包等等)
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
- TYPE字段标注了可以使用在"类、接口(包括注释类型)或枚举声明"。
- FIELD字段标注了可以使用在"字段声明"。
- METHOD 字段标注了可以使用在"方法"。
- PARAMETER 字段标注了可以使用在"参数"。
- CONSTRUCTOR字段标注了可以使用在"构造方法"。
- LOCAL_VARIABLE字段标注了可以使用在"局部变量"。