A JavaBeans is simply a Java class with a set of properties, each property which has a getter and/or a setter. For example if the Java class has a name property it could be defined like this.
public class Foo { private String mName; public String getName() { return mName; } public void setName(String pName) { mName = pName; } }
Typically one accesses the property by directly calling its getter and/or setter. But sometimes you may not know the name of the property in advance but still might want to access the getter and/or setter. To do this one can use Java’s beans and reflection packages.
Here is an example of how one would read the value of a property of a JavaBean. Note that the property name should not be capitalized.
import java.beans.PropertyDescriptor; import java.lang.reflect.Method; public Object getProperty(MyBean myBean, String propertyName) { // get descriptor of property PropertyDescriptor descriptor = new PropertyDescriptor(propertyName, myBean.getClass()); // invoke read method on property of myBean Method readMethod = descriptor.getReadMethod(); return readMethod.invoke(memberSavingsProfile, (Object []) null); }
Note that if your property only has a getter then you would create the PropertyDescriptor like this.
// get descriptor of property that only has a getter String readMethodName = "get" + org.apache.commons.lang.StringUtils.capitalize(propertyName); String writeMethodName = null; PropertyDescriptor descriptor = new PropertyDescriptor(propertyName, myBean.getClass(), readMethodName, writeMethodName);