详解java中的常用注解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Diligent_Programmer/article/details/81814054

在java中,注解作为程序的元数据嵌入到程序当中,元数据标签的存在并不影响程序代码的编译和执行。

1.常用的注解:

@Override  重写
@Deprecated   过时  
@SuppressWarnings 压制警告  
 自定义:
 public @interface 注解名 {
 }
 使用自定义注解通过: @注解名 

2.在自定义之上使用的注解

1)Retention注解

Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:
RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略
RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略
RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.

2)Documented 注解

Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中. 

3)Target通过ElementType来指定注解可使用范围的枚举集合,指定注解出现的位置
取值    注解使用范围
METHOD    可用于方法上
TYPE    可用于类或者接口上
ANNOTATION_TYPE    可用于注解类型上(被@interface修饰的类型)
CONSTRUCTOR    可用于构造方法上
FIELD    可用于域上
LOCAL_VARIABLE    可用于局部变量上
PACKAGE    用于记录java文件的package信息
PARAMETER    可用于参数上 

4)Inherited 注解
 我们自定义注解(Annotation)时,把自定义的注解标注在父类上不会被子类所继承,但是我们可以在定义注解时给我们自定义的注解标注一个@Inherited注解来实现注解继承。 

一篇比我这个更详细的博客:https://blog.csdn.net/u011130752/article/details/51773750

猜你喜欢

转载自blog.csdn.net/Diligent_Programmer/article/details/81814054