Metaprogramovanie / Anotačný procesor

Sergej Chodarev

Metaprogramovanie 5

Anotačný procesor

Sergej Chodarev

Run-time

Compile-time

Analýza kódu

Anotačný procesor

Aj ďalšie anotácie?

Kolá spracovania (rounds)

Ako funguje JavaC?

Model jazyka

Implementácia

Registrácia

META-INF/services/javax.annotation.processing.Processor

ServiceLoader

Príklad

Simple annotation-based validator

https://git.kpi.fei.tuke.sk/meta/examples/sav

Detaily

RoundEnvironment

Set<? extends Element> getElementsAnnotatedWith(
                          Class<? extends Annotation> a)

ProcessingEnvironment

Prístup k zdrojovému kódu

Použitie

Micronaut

Literatúra

Pantheon (Rome) - Dome interior.jpg