Java mit Anmerkungen

Zunächst fällt auf, dass Java einige seiner eigenen, eingebauten Annotationen verwendet, um die Annotationen @Retention und @Target zu definieren. @Retention definiert durch Setzen eines Wertes RetentionPolicy, wie lange die Annotation im Code von Build bis zur Ausführung fortbesteht. Hier wird RUNTIME verwendet, so dass die definierte Annotation im Code zur Laufzeit beibehalten wird. RetentionPolicy.SOURCE würde eine Annotation bezeichnen, die der Compiler nutzt und dann verwirft. Mit RetentionPolicy.CLASS bleiben Annotationen bis nach dem Generieren der Klassendatei bestehen, können aber von der JVM zur Laufzeit verworfen werden.

Standardmäßig ist es möglich an jeder Stelle im Code eine Annotation hinzuzufügen. Mit der Annotation @Target kann dies auf bestimmte Teile des Codes beschränkt werden. Hier wurde das Ziel auf ElementType.METHOD gesetzt, so dass Annotationen nur mit einer Methode verknüpft werden können. Andere ElementTypes sind CONSTRUCTOR, FIELD, LOCAL_VARIABLE, PACKAGE, PARAMETER und TYPE, die alle eine Annotation auf genau dieses Java-Sprachelement beschränken. So wäre eine Annotation bei einer Einstellung für TYPE bei einer Definition wie zum Beispiel der folgenden möglich:

Übrigens kann die Annotation @Target sich auf einen einzelnen ElementType oder eine Gruppe von ElementTypes beziehen, falls eine Annotation auf eine Gruppe von Sprachelementen beschränkt werden soll.

Danach wird die Annotationsschnittstelle definiert. Das funktioniert genau wie bei einer normalen Schnittstellendeklaration, nur dass sie mit @interface als Annotation gekennzeichnet wird. Innerhalb dieser Schnittstelle werden daraufhin die Annotationsmethoden definiert, wie zum Beispiel abstrakte Methoden für die Informationen, die mit der Annotation verknüpft werden sollen. Es ergibt sich also String label(); für eine String-Eigenschaft namens „label“. Ohne Methoden dient die Annotation ausschließlich zum „Markieren“. Die Annotation @Overrides ist ein Beispiel hierfür. Wenn nur eine einzige Eigenschaft vergeben wird, sollte diese am besten „value“ heißen, weil dies gut funktioniert, wenn eine Annotation mit einem einzelnen unbenannten Parameter den Wert festlegt. Eigenschaften können auch Defaultwerte haben: „int width() default 40;“ definiert zum Beispiel eine ganzzahlige Eigenschaft mit dem Defaultwert 40.

Damit ist die Definition der Annotation abgeschlossen, so dass sie nun im Code verwendet werden kann. Hier eine Klasse SimpleData, in der sie verwendet wird:

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

3 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

4 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

4 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

4 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

5 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

5 Tagen ago