Annotation

Posted bleachcurtain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Annotation相关的知识,希望对你有一定的参考价值。

JDK1.5之后,引入了元数据的概念,也就是Annotation(注释),其实它是代码里的特殊标记,这些标记可以再编译、类加载、运行时被读取,并执行相应的处理。
元数据的作用:
如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:

1.  编写文档:通过代码里标识的元数据生成文档。

2.  代码分析:通过代码里标识的元数据对代码进行分析。

3.  编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查。

 

作用

  1. 标记,用于告诉编译器一些信息
  2. 编译时动态处理,如动态生成代码
  3. 运行时动态处理,如得到注解信息
    这里的三个作用实际对应着@Retention三种值分别表示的 Annotation

jdk自带的常用注解

@Overwrite:限定重写父类方法,该你注解只能运用于方法
@Deprecated:用于表示某个程序元素(类,方法等)已过时
@SuppressWarnings:抑制编译器警告

自定义注解

  1. @interface来声明一个注解

  2. 自定义注解的过程就像在定义一个接口一样,注解中是可以增加属性,为一个注解增加属性就像在为一个接口定义方法

  3. 注解的属性需要在使用注解是进行赋值,赋值的方式(属性名=属性值,属性名=属性值)

  4. 使用default关键字可以在定义注解时给属性赋予一个默认值如果注解中只有一个属性需要被复制,并且这个属性的名字叫做value,则在赋值时可以省去value=

    int version() default 1;

  5. 注解的属性必须是 基本数据类型 String Class 枚举 其他注解 以上数据类型的一维数组

以上是关于Annotation的主要内容,如果未能解决你的问题,请参考以下文章

java annotation

如何获取被指定Annotation注释的所有类

如何在freemarker模板中调用反射方法?

JAVA注解Annotation