Mit Java 5 wurden Annotationen in Java eingeführt und sie sind schnell zu einem alltäglichen Werkzeug in der modernen Java-Entwicklung geworden. Aber wie entstand eigentlich die Idee der Annotationen?
Seit der Einführung des ersten, noch lückenhaften Java musste man wegen der fehlenden Metadaten und um mehr als nur Java-Code in eine Java-Quelldatei einzubetten, häufig auf Notkonstruktionen zurückgreifen. Das erste fertige Java schließlich verfügte bereits über JavaDoc, eine Behelfslösung für diese Lücke. JavaDoc verwendete den Inhalt speziell markierter Kommentare im Code, um zusätzliche Informationen (besonders Dokumentation) zu extrahieren und in die uns bekannten JavaDoc-Seiten umzuwandeln. Das ist eine einfache Technik, die auch fleißig genutzt wurde. Zunächst gab es Doclets, mit denen man die Dokumentationsmöglichkeiten erweitern wollte. Danach kam das einen Schritt weiter gehende XDoclet, mit dem die JavaDocs wie Markups verwendet werden konnten und eigenen Code generieren konnten. Das war zum Teil auf die Komplexität von J2EE zurückzuführen, bei dem Objekte häufig mithilfe von Boilerplate-Code in das J2EE-Framework eingebunden wurden.
Aber diese Herangehensweisen waren problematisch: Erstens schafften es die Markups in Kommentaren niemals in den endgültigen Quelltext, so dass man sie in Laufzeit nicht ansehen konnte, sofern man keinen speziellen Code dafür schrieb, zweitens wurde dadurch der einfache Kompilierungsvorgang um eine komplette Vorverarbeitungsschicht aufgebläht und drittens konnte man so Markups auf der Grundlage von Kommentaren nur schwer während der Kompilierung oder in verschiedenen IDE-Umgebungen überprüfen. Ein Tippfehler genügt, und schon wird ein Kommentar-Markup vom Compiler nicht mehr erkannt, da dieser nur Tags behandelt, deren exakten Namen er kennt.
Wegen all dieser Probleme wurde Java um Annotationen erweitert. Annotationen sind native Metadaten-Markups für die Sprache Java. Sie sind streng typisiert wie der Rest der Sprache Java, können durch Reflexion erkannt werden und sind daher für die Schreiber von IDEs und Compilern einfacher zu handhaben. Hier einige Beispiele für Code mit Annotationen. Zunächst mit einem grundlegenden Beispiel BaseExample, einer einfachen Klasse mit nur einer Methode namens myMethod:
Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.
Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.
Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…