Annotation

Annotationen (Anmerkungen) kennzeichnen - über den Rahmen der grundlegenden Strukturelemente einer Programmiersprache hinaus - zusätzliche strukturierte Informationen, die sowohl während der Übersetzungsphase durch den Compiler ( Interpreter) als auch zur Laufzeit ausgewertet werden können. Zur Nutzung von Annotation muss eine Programmiersprache entsprechende Mechanismen dafür zur Verfügung stellen. Diesbezügliche Beispiele sind die "Attribute-Elemente" im .NET-Framework - die damit .NET-Programmiersprachen wie C-Sharp (C#) oder F-Sharp (F#) zur Verfügung stehen - oder die "Annotations" in Java.

Ursprünglich wurden Zusatzinformationen d.h. alle notwendigen Metainformationen, z.B. unterschiedliche Konfigurationen der Abbildung der Klassenstruktur auf die Tabellenstruktur einer relationalen Datenbank, bezüglich einer Software in Konfigurationsdateien abgelegt. Da diese Vorgehensweise nicht nur aufwändig sondern auch fehlerbehaftet ist, gibt es in Programmiersprachen die Möglichkeit, solche Zusatzinformationen durch das Konzept der Annotationen in den Programmcode der Software selbst einzubetten.

Eine konkrete Annotation besteht aus dem @-Zeichen gefolgt von einem sogenannten Annotationstyp und einer optionalen Parameterliste, eingefasst in runde Klammern. Die Programmiersprache Java umfasst bereits einige vordefinierte Annotationstypen, die dann vom Compiler beziehungsweise in Zusammenhang mit dem Laufzeitsystem eine besondere Bedeutung haben. Nachfolgend seien als Beispiel genannt:

@Override. Hierdurch werden Methoden markiert, die Methoden aus einer Oberklasse überschreiben.

@Deprecated. Das markierte Element ist veraltet und sollte nicht mehr verwendet werden.

@SuppressWarnings. Zur Unterdrückung bestimmter Compiler-Warnungen.

@Inherited. Legt fest, dass die Annotation zusammen mit einer Klasse vererbt wird.

Neben den vordefinierten Annotationstypen mit ihrer besonderen Semantik besteht in Java die Möglichkeit eigene Annotationstypen zu definieren z.B. im Rahmen des Frameworks EJB 3 oder Bibliotheken wie Webservices. Dazu existiert mit " interface" ein gesondertes Schlüsselwort; korrekte Schreibweise im Programmcode @interface.

Ebenso ist die Verkettung von Annotationen, also das Hinzufügen einer Annotation zu einer anderen Annotation, vorgesehen. Damit ist auch der Gültigkeitsbereich einer Annotation z.B. ob Klasse, Methode, Attribut, Paket etc. festzulegen. Ein Bespiel dafür ist die Annotation @Target.

Eine weitere Anwendung finden die Annotationen im Zusammenhang mit der aspektorientierten Programmierung (AOP) im Hinblick auf die Erweiterung der verwendeten Programmiersprachen, um somit entsprechende Aspekte deutlicher ausdrücken zu können. Hiermit ist durch die Annotationen ein weiteres Mittel gegeben, um die Trennung von Aspekten im Programmcode realisieren zu können.

Informationen zum Artikel
Deutsch: Annotation
Englisch: annotation
Veröffentlicht: 20.11.2012
Wörter: 365
Tags: #Programmiersprachen
Links: .NET, @ (at sign), Aspekt, Aspektorientierte Programmierung, Attribut
1