注解分类
- 编码期间:SOURCE
- 编译期间:CLASS
- 运行期间:RUNTIME
自定义注解
//CLASS/RUNTIME/SOURCE 生效时机
@Retention(RetentionPolicy=RUNTIME)
//ANNOTATION_TYPE/METHOD/LOCAL_VARIABLE/FIELD/CONSTRUCTOR/MODULE
//PACKAGE/PARAMETER/TYPE/TYPE_PARAMETER/TYPE_USE 作用范围
@Target(ElementType.METHOD)
public @interface AnotationName{
//注解属性定义,数据类型允许基础类型、String类型、Class类型、注解类型、枚举类型
//以及上面列举的类型的一维数组,其余的都不行,注意,变量名后要有一个圆括号
public propertyTypeName1 propertyName1();
public propertyTypeName2 propertyName2() default defaultValue;
}
注解的作用
- 编译检查
- 代码分析(配置作用):可以将不会频繁改动的配置信息以注解行形式进行配置,需要频繁改动的,还是建议用配置文件进行配置
- 生成帮助文档