- 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=);
- 注解类可以没有成员,没有成员的注解称为标识注解;
四类元注解
- @Target({ElementType.METHOD…})
CONSTRUCTOR - 构造方法声明;
FIFLD - 字段声明;
LOCAL_VARIABLE - 局部变量声明;
METHOD - 方法声明;
PACKAGE - 包声明;
PARAMETER - 参数声明;
TYPE - 类、接口声明; - @Rentention(RetentionPolicy.RUNTIME)
SOURCE - 只在源代码显示,编译时丢弃;
CLASS - 编译时会记录到class中,运行时忽略;
RUNTIME - 运行时存在,可通过反射获取; - @Inherited
允许子类继承;
只能用在实现类上,不能用在接口上,且继承的子类只会继承类上的注解,不会继承方法上的注解; - @Documented
生成javadoc的时候会包含注解信息;