注解
/**
什么是注解(Annotation):
- ·注解是放在Java源码的类、方法、字段、参数前的一种标签
注解的作用:
- ·注解本身对代码逻辑没有任何影响
- ·如何使用注解由工具决定
编译器可以使用的注解:
- ·@Override:让编译器检查该方法是否正确地实现了覆写
- ·@Deprecated:告诉编译器该方法已经被标记为“作废”,在其他地方引用将会出现编译警告
- ·@SuppressWarnings
- 注解可以定义配置参数:
- ·配置参数由注解类型定义
·配置参数可以包括:
- ·所有基本类型
- ·String
- ·枚举类型
- ·数组
- ·配置参数必须是常量
*缺少某个配置参数将使用默认值
*
- 如果只写常量,相当于省略了value参数
- 如果只写注解,相当于全部使用默认值
*/
元注解
使用@Target定义Annotation可以被应用于源码的哪
些位置:
·类或接口:ElementType.TYPE
·字段:ElementType.FIELD
·方法:ElementType.METHOD
·构造方法:ElementType.CONSTRUCTOR
·方法参数:ElementType.PARAMETER
使用@Retention定义Annotation的生命周期:
·仅编译期:RetentionPolicy.SOURCE·
仅class文件:RetentionPolicy.CLASS
·运行期:RetentionPolicy.RUNTIME
如果@Retention不存在,则该Annotation默认为CLASS
通常自定义的Annotation都是RUNTIME
Annotation的生命周期:
·RetentionPolicy.SOURCE:编译器在编译时直接丢弃
@Override
·RetentionPolicy.CLASS:该Annotation仅存储在class文件中
·RetentionPolicy.RUNTIME:在运行期可以读取该Annotation
使用@Repeatable定义Annotation是否
可重复
·JDK>=1.8
使用@Inherited定义子类是否可继承父
类定义的Annotation
· 仅针对@Target为TYPE类型的
Annotation
· 仅针对class的继承
· 对interface的继承无效
定义Annotation的步骤:
· 用@interface定义注解·
用元注解(meta annotation)配置注解·
Target:必须设置·
Retention:一般设置为RUNTIME·
通常不必写@Inherited,@Repeatable等等·
定义注解参数和默认值
posted on 2019-05-06 14:16 Indian_Mysore 阅读(71) 评论(1) 编辑 收藏 举报