<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Annotation_%28Programmierung%29</id>
	<title>Annotation (Programmierung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Annotation_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Annotation_(Programmierung)&amp;action=history"/>
	<updated>2026-05-22T14:55:31Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Annotation_(Programmierung)&amp;diff=169430&amp;oldid=prev</id>
		<title>imported&gt;Matthias M.: Einzelnachweis</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Annotation_(Programmierung)&amp;diff=169430&amp;oldid=prev"/>
		<updated>2026-02-28T16:10:48Z</updated>

		<summary type="html">&lt;p&gt;Einzelnachweis&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Annotationen&amp;#039;&amp;#039;&amp;#039; (vom Lateinischen für „Anmerkung“) sind ein Mittel zur Strukturierung von [[Quelltext|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 man [[Metadaten]] oder Metainformationen, Anmerkungen und Kommentare oder Attribute nennt. Bei der Übersetzung vom [[Compiler]] werden die Informationen nicht beachtet. Sie können von [[Bibliothek (Programmierung)|Bibliotheken]] ausgewertet werden und dadurch wieder semantische Funktion bekommen.&amp;lt;ref name=&amp;quot;Java Insel&amp;quot;&amp;gt;{{Literatur |Autor=[[Christian Ullenboom]] |Titel=Java ist auch eine Insel: Einführung, Ausbildung, Praxis |Auflage=17 |Seiten=481-482 |Verlag=Rheinwerk Computing |Ort=Bonn |Datum=2024 |ISBN=978-3-8362-9544-4 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programmiersprachen, die diese Form der Einbindung von Metainformationen ermöglichen, sind unter anderem [[Java (Programmiersprache)|Java]], [[C-Sharp|C#]] und [[VB.NET]]. 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.&lt;br /&gt;
&lt;br /&gt;
== Attribute in C# und VB.NET ==&lt;br /&gt;
&lt;br /&gt;
In C# und VB.NET werden Metadaten in Form von Attributen abgebildet. Attribute können für Assemblys, Klassen, Strukturen, Methoden, Parameter, Felder und Enumerationen angegeben werden. Jedes einzelne Attribut wird in eckigen (C#) beziehungsweise spitzen Klammern (VB.NET) vor dem jeweiligen Sprachelement angegeben. Attribut-Parameter werden in gleicher Weise verwendet wie Parameter von Methoden und Eigenschaften.&amp;lt;ref&amp;gt;{{Internetquelle |werk=Microsoft Developer Network |url=https://msdn.microsoft.com/de-de/library/z0w1kczw(v=VS.100).aspx |titel=Attribute (C# und Visual Basic) |abruf=2011-11-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt, wie die Attribute &amp;lt;code&amp;gt;Obsolete&amp;lt;/code&amp;gt; zum Markieren von veralteten Code sowie &amp;lt;code&amp;gt;DllImport&amp;lt;/code&amp;gt; zum Einbinden von &amp;#039;&amp;#039;unmanaged&amp;#039;&amp;#039; (nativen) Assemblys via COM-Interop verwendet werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
// Eine Methode (hier Foo) als veraltet markieren.&lt;br /&gt;
// Der Parameter vom Typ System.String wird u. a. von IDEs als Hinweistext verwendet.&lt;br /&gt;
[Obsolete(&amp;quot;Verwenden sie die Methode Bar.&amp;quot;)]&lt;br /&gt;
public void Foo(string stringParam)&lt;br /&gt;
{&lt;br /&gt;
    //...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Import der Win32 MessageBox.&lt;br /&gt;
// Der Konstruktor von DllImport nimmt hier ein Argument entgegen (&amp;quot;user32.dll&amp;quot;),&lt;br /&gt;
// die Klasse DllImport verfügt über eine Eigenschaft CharSet, der ein Wert zugewiesen wird.&lt;br /&gt;
[DllImport(&amp;quot;user32.dll&amp;quot;, CharSet = CharSet.Unicode)]&lt;br /&gt;
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neben den Standard-Attributen, die das .NET-Framework bereitstellt, ist auch das Definieren eigener Attribute möglich. Hierzu muss eine eigene Klasse erstellt werden, die von &amp;lt;code&amp;gt;System.Attribute&amp;lt;/code&amp;gt; ableitet.&amp;lt;ref&amp;gt;{{Internetquelle |werk=[[Microsoft Developer Network|MSDN]] |url=https://msdn.microsoft.com/de-de/library/sw480ze8.aspx |titel=Erstellen benutzerdefinierter Attribute (C# und Visual Basic) |zugriff=2011-11-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel zeigt die Definition eines einfachen Attributs &amp;lt;code&amp;gt;Autor&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
// Definieren des Attributs &amp;quot;Autor&amp;quot;&lt;br /&gt;
[System.AttributeUsage(System.AttributeTargets.Class |&lt;br /&gt;
                       System.AttributeTargets.Struct)&lt;br /&gt;
]&lt;br /&gt;
public class Autor : System.Attribute&lt;br /&gt;
{&lt;br /&gt;
    private string _vorname;&lt;br /&gt;
    private string _nachname;&lt;br /&gt;
&lt;br /&gt;
    public Autor(string vorname, string nachname)&lt;br /&gt;
    {&lt;br /&gt;
        _vorname = vorname;&lt;br /&gt;
        _nachname = nachname;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Verwenden des Attributs &amp;quot;Autor&amp;quot;&lt;br /&gt;
[Autor(&amp;quot;Max&amp;quot;, &amp;quot;Mustermann&amp;quot;)]&lt;br /&gt;
class BeispielKlasse&lt;br /&gt;
{&lt;br /&gt;
    //...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annotationen in Java ==&lt;br /&gt;
Die Programmiersprache Java stellt mit [[Javadoc]] und den Annotationen zwei Mechanismen zum Einbinden von Metadaten zur Verfügung. Diese werden insbesondere im [[Jakarta EE|Jakarta-EE]]-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 …).&lt;br /&gt;
&lt;br /&gt;
=== Javadoc ===&lt;br /&gt;
{{Hauptartikel|Javadoc}}&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;/**&amp;lt;/code&amp;gt; eingeleitet. Innerhalb dieser Kommentare können dann spezielle Tags verwendet und diesen jeweils eine Zeichenkette als Wert zugewiesen werden.&lt;br /&gt;
&lt;br /&gt;
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 [[Jakarta EE|Jakarta-EE]]-Umfeld eingesetzte [[XDoclet]] dar. Das folgende Beispiel zeigt, wie man die Softwareversion mittels Javadoc angibt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight  lang =&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 /**&lt;br /&gt;
  * @version 1.5&lt;br /&gt;
  */&lt;br /&gt;
public class A {}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotationen (ab Java 5) ===&lt;br /&gt;
{{Hauptartikel|Annotation (Java)}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Annotationen können mittels des Annotation Processing Toolkits (APT) direkt im Quelltext oder mittels [[Reflexion (Programmierung)|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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang =&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 public class A {&lt;br /&gt;
   @SuppressWarnings(&amp;quot;unchecked&amp;quot;)&lt;br /&gt;
   public void meineMethode() {}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ab Java 6 ist das APT-Werkzeug bereits im Java-Compiler integriert und Teil des Standardkompilierungsprozesses. Ab Java 8 wird das APT-Werkzeug nicht mehr separat ausgeliefert, da die Annotation-Verarbeitung vollständig von der integrierten Compiler-API übernommen wird.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;br /&gt;
[[Kategorie:Java (Programmiersprache)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Matthias M.</name></author>
	</entry>
</feed>