| 复制代码import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
 * 第三题:3、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.  
 *  public void setProperty(Object obj, String propertyName, Object value){   
 *  }
 * @author Administrator
 *
 */
public class Test3 {
        public void setProperty(Object obj, String propertyName, Object value) throws Exception{
                //把obj对象当作javaBean来看,可以通过new PropertyDescriptor(propertyName, obj.getClass())得到想对于propertyName的属性
                PropertyDescriptor pd = new PropertyDescriptor(propertyName, obj.getClass());
                Method setPropertyName = pd.getWriteMethod();//用属性中得到写的方法得到setXxx方法
                setPropertyName.invoke(obj, value);//调用setXxx的invoke方法改变obj对象propertyName的值为value
        }
}
上面这道题中如果,obj对象中没有关于propertyName的属性的setXxx方法怎么办?
 
 
 |