Aktuell Larry Ratlos Larry und die Annotations Lange Zeit schon hat Larry bei der Java-Programmierung von Annotations Gebrauch gemacht. Zum Jahresende fi ndet er endlich Zeit, sich mit weiteren Möglichkeiten der Annotations zu beschäftigen. Annotations deklarien Nach intensiven Recherchen in seinen Unter-lagen >> package annotations.beispiel01; import ... public @interface MyAnnotation { fi ndet er heraus, dass Annotations ganz String initialValue(); int length(); leicht deklariert werden können (siehe Ab-bildung 1). } << In einer Beispielklasse verwendet er die Annotations: >> public class Annotations01 { Um auf dem neuesten Stand zu sein, „googelt“ er ein bisschen und fi ndet heraus, dass Annotations über Refl ection analysiert werden können (siehe Abbildung 2). Irgendetwas scheint aber nicht zu stimmen: Die Methode getAnnotation fi ndet keine der in der Klasse angegebenen Annotations. Was macht Larry falsch? Können Sie Larry helfen? Larry freut sich auf Ihren Lösungsvorschlag. Wenn Sie bis zum 27. Dezember 2011 die richtige Antwort an kniffel@ordix.de senden, dann revanchiert sich Larry mit einem kleinen Weihnachtspräsent bei den schnellsten Einsen-dern. @MyAnnotation(initialValue=\"Stefan\", length=32) public String name; @MyAnnotation(initialValue=\"Koch\", length=32) public String vorname; ... << Abb. 1: Deklarierung von Annotions - leicht gemacht. >> ... Field[] fi elds = object.getClass().getDeclaredFields(); for(Field fi eld: fi elds) { Annotation annotation = fi eld.getAnnotation(MyAnnotation.class); if (annotation == null) { continue; } System.out.println(\"Attribut: \" + fi eld.getName()); System.out.println(\"Gefundene Annotation \" + annotation); MyAnnotation myAnnotation = (MyAnnotation) annotation; System.out.println(\"Found initialValue: \" + myAnnotation.initialValue()); System.out.println(\"Found length: \" + myAnnotation.length()); String currentValue = (String) fi eld.get(object); System.out.println(\"Current value is: \" + currentValue); Das Passwort-Problem wurde gelöst! Viele freundliche Helfer konnten Larrry durch ihre Lösungen überzeugen. Er bedankte sich mit einem kleinen Präsent bei den schnellsten Einsendern: Christian Malouf, Sabine Göb, Enrico Neumann } << Abb. 2: Anlayse von Annotations über Refl ection. ORDIX News 4/2011 29