{"id":263,"date":"2009-02-28T12:03:00","date_gmt":"2009-02-28T12:03:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=263"},"modified":"2009-02-28T12:03:00","modified_gmt":"2009-02-28T12:03:00","slug":"fluent-interface-based-api-fur-java-reflection-fest-reflect","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2009\/02\/fluent-interface-based-api-fur-java-reflection-fest-reflect\/","title":{"rendered":"Fluent Interface-based API f\u00fcr Java Reflection: FEST-Reflect"},"content":{"rendered":"<blockquote>\n<p><a href=\"http:\/\/fest.easytesting.org\/reflect\/index.html\">FEST-Reflect<\/a> is a Java library that provides a <a href=\"http:\/\/martinfowler.com\/bliki\/FluentInterface.html\">Fluent Interface<\/a>-based API that simplifies the usage of <a href=\"http:\/\/java.sun.com\/docs\/books\/tutorial\/reflect\/\">Java Reflection<\/a>, resulting in improved readability and type safety. It supports class loading, access to static inner classes constructors, methods and fields, and more!<\/p>\n<\/blockquote>\n<p>Die Aufrufen sind dann h&#252;bsch kompakt:<\/p>\n<p>Steht zur Compilezeit etwa<\/p>\n<pre class=\"prettyprint\">  String name = names.get(8);<\/pre>\n<p>wird mit <a href=\"http:\/\/fest.easytesting.org\/reflect\/index.html\">FEST-Reflect<\/a> daraus<\/p>\n<pre class=\"prettyprint\">  String name = method(&quot;get&quot;).withReturnType(String.class)<br \/>                             .withParameterTypes(int.class)<br \/>                             .in(names)<br \/>                             .invoke(8);<br \/><\/pre>\n<p><\/p>\n<p>Ein paar weitere Beispiele:<\/p>\n<p><\/p>\n<pre class=\"prettyprint\">  Person person = constructor().withParameterTypes(String.class)<br \/>                               .in(Person.class)<br \/>                               .newInstance(&quot;Yoda&quot;);<br \/><br \/>  method(&quot;setName&quot;).withParameterTypes(String.class)<br \/>                   .in(person)<br \/>                   .invoke(&quot;Luke&quot;);<br \/><br \/>  field(&quot;name&quot;).ofType(String.class)<br \/>               .in(person)<br \/>               .set(&quot;Anakin&quot;);<br \/><br \/>  List&lt;String&gt; powers = field(&quot;powers&quot;).ofType(new TypeRef&lt;List&lt;String&gt;&gt;() {})<br \/>                                       .in(jedi)<br \/>                                       .get();<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>FEST-Reflect is a Java library that provides a Fluent Interface-based API that simplifies the usage of Java Reflection, resulting in improved readability and type safety. It supports class loading, access to static inner classes constructors, methods and fields, and more! Die Aufrufen sind dann h&#252;bsch kompakt: Steht zur Compilezeit etwa String name = names.get(8); wird [&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":[4],"tags":[],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-open-source"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/263","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=263"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}