ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 主要作用 * 生成文档,这是最常见的,也是java最早提供的注解。常用的有@see、@param、@return等 * 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量; * 在编译时进行格式检查。如@override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。 #### 特性 * 注解不能包含extends子句,所有注解自动扩展Annotation接口 * 注解本身也可以被注解 * 局部变量声明的注解不能存储在.class文件中 * 一个注解不能继承另一个注解; * 注解声明的所有方法都必须不带参数; * 注解方法不能返回基本类型(如int或double)、String或Class类型的对象、枚举类型、其他注解类型; * 当一个接口直接继承java.lang.annotation.Annotation接口时,仍是接口,而并非注解。要想自定义注解类型,只能通过@interface关键字的方式,其实通过该方式会隐式地继承.Annotation接口 * 只能用public或默认\(default\)这两个访问权修饰.例如,String value\(\);这里把方法设为defaul默认类型 ### 异常和错误 * AnnotationTypeMismatchException:当注解经过编译\(或序列化\)后,注解类型改变的情况下,程序视图访问该注解所对应的元素,则抛出此异常。 * IncompleteAnnotationException:当注解经过编译\(或序列化\)后,将其添加到注解类型定义的情况下,程序视图访问该注解所对应的元素,则抛出此异常。 * AnnotationFormatError:当注解解析器试图从类文件中读取注解并确定注解出现异常时,抛出该错误。 #### 标记注解 标记注解是特殊类型的注解,其中不包含成员;isAnnotationPresent该方法可以确定是否标记注解; #### 类型注解 #### 内置注解 #### 重复注解 @Repeatable \#\#重复注解 #### 重点 AnnotatedElement _**参考资料**_ [http://linbinghe.com/2017/ac8515d0.html](http://linbinghe.com/2017/ac8515d0.html)