Bean Introspection
Usage example:
// Retrieves the value of the property "name"
String name = Reflection.property("name").ofType(String.class).in(person).get();
// Sets the value of the property "name" to "Yoda"
Reflection.property("name").ofType(String.class).in(person).set("Yoda");
// Retrieves the value of the property "powers"
List powers = Reflection.property("powers").ofType(new TypeRef>() {}).in(jedi).get();
// Sets the value of the property "powers"
List powers = new ArrayList();
powers.add("heal");
Reflection.property("powers").ofType(new TypeRef>() {}).in(jedi).set(powers);