Bestandteil von Java seit Version 6, ist das Annotation Processing API immer noch eines der eher unbekannteren APIs der Plattform. Zu Unrecht, eröffnet die Einbindung von Annotationsprozessoren in den Java-Compiler doch eine Vielzahl interessanter Möglichkeiten, z.B. die Generierung von Value Objects und Builder-Klassen, Dependency Injection ohne Reflection zur Laufzeit oder die Erstellung typsicherer Bean-zu-Bean-Mapper.
Auch die Erstellung eigener, projektspezifischer Prozessoren ist nicht schwer; der Vortrag gibt einen grundlegenden Überblick über das API, vergleicht Ansätze zur Code-Generierung (APIs wie JavaPoet vs. Templates) und diskutiert Best Practices für Implementierung, Test und Verwendung von Annotationsprozessoren.
Abgerundet wird die Session mit einer Vorstellung verschiedener populärer Annotationsprozessoren wie Immutables, Dagger oder MapStruct.
Slides einer Session vom JavaLand 2019 (https://programm.javaland.eu/2019/#/scheduledEvent/575382)