1. 分类
注解可以分为JDK自带注解、元注解以及我们自定义的注解。
2. JDK注解
1)@Override 重写
2)@Deprecated 标记表明这个方法已经废止,暂时可使用,建议后人不要使用此方法
3)@SuppressWarnings(“deprecation”) 标记忽略警告
4)@SafeVarags jdk1.7出现,堆污染,不常用
5)@FunctionallInterface jdk1.8出现,配合函数式编程拉姆达表达式,不常用
3. 元注解
元注解可以理解为描述注解的注解
1)@Target 描述注解使用的位置
2)@Rentention 描述注解的生命周期
3) @Inherited 描述允许子注解继承
4) @Documented 描述生成javadoc时会包含注解,不常用
5) @Repeatable 描述注解可重复类型注解,可以在同一个地方多次使用,不常用
4. @Target
在定义注解时使用,用于描述注解的使用范围
- ElementType.ANNOTATION_TYPE 应用于注释类型
- ElementType.CONSTRUCTOR 应用于构造函数
- ElementType.FIELD 应用于字段或属性
- ElementType.LOCAL_VARIABLE 应用于局部变量
- ElementType.METHOD 应用于方法级
- ElementType.PACKAGE 应用于包声明
- ElementType.PARAMETER 应用于方法的参数
- ElementType.TYPE 应用于类的元素
5. @Retention
描述了注解的生命周期
--source 在源文件有效(即源文件保留)
--class 在class文件中有效(即class保留)
--runtime 在运行时有效(即运行时有效)
6. 自定义注解