Annotation (Programmierung)

Annotation (Programmierung)

Annotationen sind ein Mittel zur Strukturierung von Programmquelltexten, bei der die Erzeugung von Programmtexten und mit der Programmierung verbundener Hilfsdateien teilweise automatisiert wird. Als Informationsgrundlage für die automatische Erzeugung der zusätzlichen Dateien werden Informationen aus dem Quelltext herangezogen, die vom Compiler bei der Übersetzung ausgeklammert werden. Diese Informationen nennt man Metadaten oder Metainformationen, Anmerkungen und Kommentare oder Attribute.

Programmiersprachen, die diese Form der Einbindung von Metainformationen ermöglichen, sind unter anderem Java und C#. Mit Hilfe von Zusatzwerkzeugen lassen sich Metainformationen auch in Sprachen einbetten, wenn deren Syntax diese nicht explizit unterstützt. Die Metadaten werden dann üblicherweise in Kommentaren vor dem Compiler verborgen und mit den Zusatzwerkzeugen ausgewertet.

Annotationen in Java

Die Programmiersprache Java stellt mit Javadoc und den Annotationen zwei Mechanismen zum Einbinden von Metadaten zur Verfügung. Diese werden insbesondere im J2EE-Umfeld eingesetzt, um verschiedene Dateien automatisiert zu erzeugen. Dazu zählen beispielsweise SQL-Dateien, Deployment-Deskriptoren und die mit Enterprise Java Beans verbundenen Schnittstellen (Remote Interface, Home Interface, ...).

Javadoc

Hauptartikel: Javadoc

Javadoc ist ein Werkzeug zur Auswertung von Kommentaren im Quelltext, das mit Java 1.2 eingeführt wurde. Dazu werden Kommentare, die ausgewertet werden sollen mit der Zeichenkette /** eingeleitet. Innerhalb dieser Kommentare können dann spezielle Tags verwendet und diesen jeweils eine Zeichenkette als Wert zugewiesen werden.

Die Auswertung erfolgt mittels des gleichnamigen Werkzeugs Javadoc, das ursprünglich zur automatisierten Quelltext-Dokumentation entworfen wurde. Eine weitere Möglichkeit stellt das insbesondere im J2EE-Umfeld eingesetzte XDoclet dar. Das folgende Beispiel zeigt, wie man die Softwareversion mittels Javadoc angibt:

 /**
  * @version 1.5
  */
public class A {}

Annotationen (ab Java 5)

Hauptartikel: Annotation (Java)

Mit der Sprachversion Java 5 wurden Annotationen als ein eigenes Sprachelement geschaffen. Annotationen werden im Quelltext durch ein @-Zeichen gefolgt vom Namen der Annotation gekennzeichnet. Zusätzlich ist es auch möglich, Annotationen Parameter zu übergeben. Außerdem können den vorgegebenen Annotationen auch eigene hinzugefügt werden.

Annotationen können mittels des Annotation Processing Toolkits (APT) direkt im Quelltext oder mittels Reflexion zur Laufzeit eines Programms ausgewertet werden. Unter anderem dadurch entstehen weitere Einsatzmöglichkeiten im Vergleich zu Javadoc. So wertet beispielsweise der Compiler selbst einige Annotationen aus. Das folgende Beispiel zeigt, wie man eine Compiler-Warnung mittels der entsprechenden Annotation unterdrückt:

 public class A {
   @SuppressWarnings("unchecked")
   public void meineMethode() {}
}

Ab Java 6 ist das APT-Werkzeug bereits im Java-Compiler integriert.


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Annotation — bedeutet „Anmerkung“, „Beifügung“, „Hinzufügung“. In diesem Sinn haben Annotationen bei Stichworten, Begriffsklärungen oder ausführlichen Texten den Charakter der Erklärung beziehungsweise Ergänzung. Annotationen halten Dinge fest, die zwar nicht …   Deutsch Wikipedia

  • Annotation (Java) — Als Annotation wird im Zusammenhang mit der Programmiersprache Java ein Sprachelement bezeichnet, das die Einbindung von Metadaten in den Quelltext erlaubt. Dieses Element wurde im JSR 175 festgelegt und mit der Version Java 5.0 eingeführt.… …   Deutsch Wikipedia

  • Vererbung (objektorientierte Programmierung) — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • Attributorientierte Programmierung — Annotationen sind ein Mittel zur Strukturierung von Programmquelltexten, bei der die Erzeugung von Programmtexten und mit der Programmierung verbundener Hilfsdateien teilweise automatisiert wird. Als Informationsgrundlage für die automatische… …   Deutsch Wikipedia

  • Vererbung (Programmierung) — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • Is-a — Vererbung dargestellt mittels UML. Die abgeleitete Klasse hat die Attribute x und y und verfügt über die Methoden a und b (im UML Sprachgebrauch Operationen a und b). Die Vererbung (engl. Inheritance) ist eines der grundlegenden Konzepte der… …   Deutsch Wikipedia

  • Enterprise Java Beans — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • Entity Bean — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • Session Bean — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • POJI — POJO ist eine Abkürzung für Plain Old Java Object, also ein „ganz normales“ Objekt in der Programmiersprache Java. Inhaltsverzeichnis 1 Motivation 2 Verwendung 3 Variationen 4 Einzelnachweise // …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”