Überschreiben des Methodenkörpers von .class – wie Lombok
Posted: 14 Jan 2025, 13:00
Ich verwende Java 17 und muss einen Annotationsprozessor erstellen, der (wie Lombok) die vorhandenen Methoden ändert.
Das Ziel ist eine Annotation namens @LogThis, die ersetzt wird den Methodenkörper mit einem Protokoll und entfernt eine Logik daraus. Der Rückgabewert ist standardmäßig primitiv oder null.
Java-Code:
Kompilierte .class:
Ich habe viele Tutorials und Anleitungen ausprobiert. Die meisten von ihnen haben nicht gelehrt, wie man die .class wie Lombok modifiziert.
Das Ziel ist eine Annotation namens @LogThis, die ersetzt wird den Methodenkörper mit einem Protokoll und entfernt eine Logik daraus. Der Rückgabewert ist standardmäßig primitiv oder null.
Java-Code:
Code: Select all
@LogThis
int sum(int a, int b) {
return a+b;
}
Code: Select all
int sum(int a, int b) {
Logger.log("...");
return 0; // return default values
}