Orte für Annotationen
Annotationen lasen sich setzen an allen Deklarationen und bei Typnutzungen (ab Java 8).
Deklarationen
Typnutzung
Typendeklarationen (Klassen, Schnittstellen, Aufzählungen, anderen Annotationtypen)
new-Operator
Eigenschaften (Konstruktoren, Methoden, Attributen)
Typ-Anpassung
implements-Klausel
throws-Klausel bei Methoden
Wo Annotationen möglich sind
Die Annotationen bei der Typnutzung nennen sich kurz Typ-Annotationen.
Java bringt einige Annotationstypen mit, doch die werden bisher ausschließlich für Deklarationen eingesetzt, wie das gekannte @Override. Vordefinierte Typ-Annotationen sind bisher in der Java SE nicht zu finden.
2 Kommentare
Christian Ullenboom ·
Ausblick Ein Beispiel für eine externe Bibliothek ist das Checker Framework (https://checkerframework.org/), was eine große Anzahl von Annotationstypen und ein Werkzeug zur Prüfung von Eigenschaften bereitstellt. Damit lässt sich zum Beispiel schreiben: ```java @NonNull Object ref = new Object(); public int compareTo( @NonNull String other ) { ... } boolean lessThan( double[] arr1, double @SameLen("#1") [] arr2 ) { ... } ``` Ein anderes Beispiel ist Beans Validation (https://beanvalidation.org/), mit dem sich zum Beispiel schreiben lässt: ```java Optional<@Past LocalDate> getBirthday() { ... } @Min(value = 18) @Max(value = 150) int age; ```
Ilker ·
Die Annotationen bei der Typnutzung nennen sich kurz Typ-Annotationen. Sie haben das erwähnt und geschrieben, dass es möglich ist, aber Java SE keine Verwendung dafür hat. Gibt es in der Praxis dafür irgendein Beispiel? Der Leser wäre dankbar ein (theoretisches, wenn auch vielleicht erdachtes) Beispiel dazu zu sehen.
Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.