Java · Avançado · Português · Técnico
processador de anotação
Plugin do compilador que roda durante o javac, lê anotações no código-fonte e gera novas classes ou arquivos, sem reflexão em execução.
Onde usar
Aparece em Lombok, MapStruct, Dagger e Room. Falhas surgem como erros de compilação; é preciso configurá-lo no annotationProcessorPaths do Maven.
Em código
@SupportedAnnotationTypes("*")
public class Proc extends AbstractProcessor {
public boolean process(
Set<? extends TypeElement> t,
RoundEnvironment r) {
return false; // gera fontes pelo Filer
}
}Exemplos
O MapStruct gera o mapper por um processador de anotação.
A IDE não achou a classe gerada porque o processamento estava desligado.
Cuidado
Gera código antes da execução, então difere da reflexão; a classe gerada só existe depois do build, o que confunde a IDE se o processamento não estiver ativado.
Sinônimos
annotation processor