Java · Avançado · Português · Técnico
meta-anotação
Anotação aplicada a outra anotação para configurá-la, como @Retention, que define até quando ela vive, e @Target, que define onde pode ser usada.
Onde usar
Aparece ao criar anotações próprias: sem @Retention(RUNTIME), a reflexão não enxerga a anotação e o framework parece ignorá-la.
Em código
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,
ElementType.METHOD})
@Documented
@interface Rota {
String valor();
}Exemplos
Faltou a meta-anotação Retention, por isso o framework não vê a anotação.
Usa Target para limitar a anotação a métodos.
Cuidado
O padrão de retenção é CLASS: a anotação fica no .class, mas não está disponível para a reflexão em execução.