@Target({ElementType.TYPE})
表示注解作用范围,超过这个作用范围,编译的时候就会报错
@Retention(RetentionPolicy.RUNTIME)
被描述的注解在什么范围内有效
@Documented
表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中,是一个标记注解,没有成员
点左侧栏中的“DocumentAnnotation",打开DocumentAnnotation类的文档说明,可以看到@Book标记的注解内容显示了出来:
如果@Book注解没有被@Document标记,那么被@Book注解标记的DocumentAnnotation类的注解信息就不会包含在java doc html文档中:如下图
@Inherited
如果一个类用上了@Inherited修饰的注解,那么其子类也会继承这个注解