概念
注解
当我们需要给某一类代码做一些特殊事情的时候,就需要给这一类代码打上一个标记。后续通过标记找到这一类代码,做一些我们自己想做的事情。这个标记,就是注解
元注解
可以理解为用来给注解增加标记用的,增加了元注解就是给这个注解添加上了描述信息。元注解其实并不多,主要是以下几种:
- @Retention 存活时间
- RententionPolicy.RunTime 注解将一直保留直到程序终止,在程序运行时可以通过注解获取运行时信息
- RententionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行优化编译的时候它将被丢弃忽视。
- RententionPolicy.CLASS 注解只在编译期间的时候保留,不会被加载到JVM中。(默认的注解存活时间)
- @Target 作用域(限定使用场景)
- ElemenntType.ANNOTTION_TYPE 可以给一个注解进行注解
- ElementType.CONSTRUCTOR 可以给构造方法进行注解
- ELementType.FIELD 可以给类的属性进行注解
- ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
- ElementType.METHOD 给方法添加上注解
- ElementType.PACKAGE 给一个包添加上注解
- ElementType.PARAMETER 可以给一个方法内的参数进行注解
- ElementType.TYPE 可以给一个类(类、接口、枚举)添加注解
- @Document 保存到javadoc
- 它的作用是能够将注解中的元素包含到javadoc中
- @Interited 继承注解
- 父类上边的注解会被子类所继承
- Repeatable 重复
- 可以在某个作用域上边重复使用某个注解 (不建议使用该注解,如果有这种业务,可以在注解中定义一个数组类型的抽象方法,接口多个参数)
- Java8新增的类型注解
- 这个注解可以用在程序中所有存在类型的地方。(可以通过该注解做一些强制检查之类的工作提高程序的健壮性,例如@NotNull这个就是一个类型注解)。