注释如何成为自身的注释?

当我在软件包java.lang.annotation注意到一个名为@Target的注释时,我正在浏览JDK 7的文档。 该类的标题是

 @Documented @Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) public @interface Target 

现在, @Target被用作自身的注释。 这怎么可能? @Target甚至在声明之前就在标题中使用。 我用我编写的注释尝试了这个,并且它也有效。 谁能解释这里发生了什么?

JLS在9.6节注释类型中特别预见到了这一点:

如果注释类型声明上的注释a (第9.7节 )对应于注释类型T ,并且T具有对应于java.lang.annotation.Target的(元)注释m ,则m必须具有其值的元素是java.lang.annotation.ElementType.ANNOTATION_TYPE ,或者是值为java.lang.annotation.ElementType.TYPE的元素,或者发生编译时错误。

第9.6或9.7节中没有任何其他部分说明注释声明通过引用所声明的注释进行注释是非法的。