Take a look at PropertyUtilsBean from Apache Commons Beanutils (http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.1/apidocs/org/apache/commons/beanutils/PropertyUtilsBean.html#setProperty%28java.lang.Object,%20java.lang.String,%20java.lang.Object%29 ).
Should be as simple as:
Person p = new Person();
PropertyUtils.setProperty(p, "name", "William");
Library supports setting nested properties as well, e.g.
PropertyUtils.setProperty(p, "address.street", "Route 69");
// equivalent of p.getAddress().setStreet("Route 69")