Java中的常见注解
- JDK自带注解:@Override(方法重写)、@Deprecated(标注一个方法过时)、@Suppvisewarnnings(忽略警告)
- 第三方注解
- 自定义注解
注解的分类
自定义注解
- 使用@interface关键字定义注解
- 成员以无参无异常方式声明,例:String value();
- 可以用defalut为成员指定一个默认的值
- 成员类型是受限制的,合法的类型包括原始类型及String、Class、Annotation、Enumeration
- 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=),例如:@(“value”)
- 注解类可以没有成员,没有成员的注解称为标识注解
原注解
@Target、@Retention、@Inherited、@Documented
@Target : 说明注解的作用域,有以下几种作用域
CONSTRUCTOR:构造方法声明
FIELD:字段声明
LOCAL_VARIABLE:局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMETER:参数声明
TYPE:类、接口
@Retention:说明注解的生命周期
SOURCE:只在源码显示,编译时会丢弃
CLASS:编译时会记录到class中,运行时忽略
RUNTIME:运行时存在,可以通过反射读取
@Inherited:允许被标注注解的子类继承,只有作用域(类)会被子类继承
@Documented:生成javadoc时会包含注解