注解的定义
- 注解其实就是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过注解,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
- Annotation能够用来为程序元素(类、方法、成员变量等)设置元数据
- 访问和处理Annotation的工具统称APT(Annotation Processing Tool)
5类基本的Annotation
- @Override:用来指定方法的覆载
- @Deprecate:用于标识某个程序元素(类、方法等)已过时
- @SuppressWarnings:抑制编译器警告
- @SafeVarargs:抑制堆污染警告
- @FunctionalInterface:标识函数式接口
元Annotation
- 用于修饰其他的Annotation定义
- @Retention:指定被修饰的Annnotation可以保留多长时间
- @Target:指定被修饰的Annotation能用于修饰哪些程序单元
- @Documented:被修饰的Annotation类将被javadoc工具提取成文档
- @Inherited:指定被修饰的Annotation将具有继承性(添加具有继承性Annotation的类的子类将自动被该Annotation修饰)
自定义Annotation
- 定义新的Annotation类型使用@interface关键字
- 示例123456@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Test{String name() default "Joe";int age() default 20;}