Como é possível que uma anotação possa ser uma anotação para si mesma?
Eu estava navegando pela documentação do JDK 7 quando notei uma anotação chamada@Target
no pacotejava.lang.annotation
. O cabeçalho dessa classe é
@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)
public @interface Target
Agora,@Target
é usado como uma anotação para si mesmo. Como isso é possível?@Target
é usado no cabeçalho mesmo antes de ser declarado. Eu tentei isso com anotações que escrevi e funcionou também. Alguém pode explicar o que está acontecendo aqui?