{"id":2685,"date":"2014-02-08T15:02:55","date_gmt":"2014-02-08T13:02:55","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2685"},"modified":"2014-02-08T15:02:55","modified_gmt":"2014-02-08T13:02:55","slug":"java-lang-reflect-parameter-in-java-8","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2014\/02\/java-lang-reflect-parameter-in-java-8\/","title":{"rendered":"java.lang.reflect.Parameter in Java 8"},"content":{"rendered":"<p>Ein Parameter repr\u00e4sentiert einen Parameter einer Methode oder eines Konstruktors. Zu den neuen Methoden z\u00e4hlen: <\/p>\n<p>final class java.lang.reflect.Parameter <\/p>\n<p>implements AnnotatedElement <\/p>\n<p>\u00a7 String getName() <\/p>\n<p>\u00a7 int getModifiers() <\/p>\n<p>\u00a7 boolean isNamePresent() <\/p>\n<p>\u00a7 boolean isImplicit() <\/p>\n<p>\u00a7 boolean isSynthetic() <\/p>\n<p>\u00a7 boolean isVarArgs() <\/p>\n<p>\u00a7 Type getParameterizedType() <\/p>\n<p>\u00a7 Executable getDeclaringExecutable() <\/p>\n<p>\u00a7 Class&lt;?&gt; getType() <\/p>\n<p>\u00a7 AnnotatedType getAnnotatedType() <\/p>\n<p>Die in Java 8 eingef\u00fchrte finale Klasse Parameter implementiert AnnotatedElement, da seit Java 8 auch Parametervariablen annotiert sein k\u00f6nnen; die Methoden sind in der oberen Aufz\u00e4hlung nicht noch einmal aufgez\u00e4hlt. <\/p>\n<p>Um an einen Parameter zu gelangen nutzen wir getParameters() auf einem Executable, also konkret Constructor, Method. <\/p>\n<p>abstract class java.lang.reflect.Executable&lt;T&gt;<br \/>extends AccessibleObject <\/p>\n<p>implements Member, GenericDeclaration  <\/p>\n<p>\u00a7 public Parameter[] getParameters() <\/p>\n<p>Falls etwas beim Erfragen schief geht, gibt es eine MalformedParametersException, eine ungepr\u00fcfte Ausnahme. <\/p>\n<p>Beispiel: <\/p>\n<p>Constructor&lt;?&gt;[] constructors = Point.class.getDeclaredConstructors(); <\/p>\n<p>for ( Constructor&lt;?&gt; constructor : constructors ) { <\/p>\n<p>System.out.println( constructor ); <\/p>\n<p>for ( Parameter param : constructor.getParameters() ) <\/p>\n<p>System.out.printf( &#8220; %s %s%n&#8220;, param.getType(), param.getName() ); <\/p>\n<p>} <\/p>\n<p>Mit der Ausgabe (an der abzusehen ist, dass die Parameternamen f\u00fcr die JVM nicht bekannt sind): <\/p>\n<p>public java.awt.Point(int,int) <\/p>\n<p>int arg0 <\/p>\n<p>int arg1 <\/p>\n<p>public java.awt.Point(java.awt.Point) <\/p>\n<p>class java.awt.Point arg0 <\/p>\n<p>public java.awt.Point()<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Parameter repr\u00e4sentiert einen Parameter einer Methode oder eines Konstruktors. Zu den neuen Methoden z\u00e4hlen: final class java.lang.reflect.Parameter implements AnnotatedElement \u00a7 String getName() \u00a7 int getModifiers() \u00a7 boolean isNamePresent() \u00a7 boolean isImplicit() \u00a7 boolean isSynthetic() \u00a7 boolean isVarArgs() \u00a7 Type getParameterizedType() \u00a7 Executable getDeclaringExecutable() \u00a7 Class&lt;?&gt; getType() \u00a7 AnnotatedType getAnnotatedType() Die in Java 8 eingef\u00fchrte [&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-2685","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\/2685","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=2685"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2685\/revisions"}],"predecessor-version":[{"id":2686,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2685\/revisions\/2686"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}