{"id":2297,"date":"2013-09-10T13:04:45","date_gmt":"2013-09-10T11:04:45","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2297"},"modified":"2013-09-10T13:04:45","modified_gmt":"2013-09-10T11:04:45","slug":"target-annotation-seit-java-8","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/target-annotation-seit-java-8\/","title":{"rendered":"@Target Annotation seit Java 8"},"content":{"rendered":"<p>Die Meta-Annotation @java.lang.annotation.Target beschreibt, wo eine Annotation angeheftet werden kann. Ist kein ausdr\u00fcckliches @Target gew\u00e4hlt, gilt es f\u00fcr alle Elemente, die Annotation kann also etwa an Klassen stehen, aber auch an lokalen Variablen. In der Regel gibt es bei @Target ein Element, und das ist von der Aufz\u00e4hlung java.lang.annotation.ElementType; es deklariert die folgenden Ziele:   <\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>ElementType<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>Erlaubt Annotationen &#8230;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>ANNOTATION_TYPE<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>nur an anderen Annotationstypen, was @Target(ANNOTATION_TYPE) somit zu einer Meta-Annotation macht.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>TYPE<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an allen Typdeklarationen, also Klassen, Schnittstellen, Annotationstypen, Aufz\u00e4hlungen.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>CONSTRUCTOR<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an Konstruktor-Deklarationen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>METHOD<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an Deklarationen von statischen und nicht-statischen Methoden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>FIELD<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an Deklarationen von statischen Variablen und Objekt-Variablen.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>PARAMETER<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an Parametervariablen von Methoden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>LOCAL_VARIABLE<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an lokalen Variablen.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>PACKAGE<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an package-Deklarationen.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>TYPE_PARAMETER<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an der Deklaration einer Typ-Variablen f\u00fcr generische Typ-Parameter. Neu in Java 8. Wenn es etwa hei\u00dft class List&lt;@AnAnnotation T&gt;.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"182\">\n<p>TYPE_USE<\/p>\n<\/td>\n<td valign=\"top\" width=\"480\">\n<p>an allen Stellen, wo Typen eingesetzt werden, adressiert also Typ-Annotationen. Ebenfalls neu in Java 8. So etwas wie @NonNull (keine Annotation aus der Java SE!) ist ein Beispiel<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a name=\"_Ref310408679\">Tabelle <\/a>1.3: ElementType bestimmt Orte, an denen Annotationen erlaubt sind.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Meta-Annotation @java.lang.annotation.Target beschreibt, wo eine Annotation angeheftet werden kann. Ist kein ausdr\u00fcckliches @Target gew\u00e4hlt, gilt es f\u00fcr alle Elemente, die Annotation kann also etwa an Klassen stehen, aber auch an lokalen Variablen. In der Regel gibt es bei @Target ein Element, und das ist von der Aufz\u00e4hlung java.lang.annotation.ElementType; es deklariert die folgenden Ziele: ElementType [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11,66],"tags":[],"class_list":["post-2297","post","type-post","status-publish","format-standard","hentry","category-insel","category-java-8"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2297"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2297\/revisions"}],"predecessor-version":[{"id":2298,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2297\/revisions\/2298"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}