/*
obj是待设置的对象
propertyName是待设置的属性名
value是待设置的属性值
*/
String methodName = "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
try {
Field field = obj.getClass().getDeclaredField(propertyName);
Method method = obj.class.getDeclaredMethod(methodName, field.getType());
method.invoke(obj, converAttributeValue(field.getType().getName(), value));
} catch (Exception ex) {
ex.printStackTrace();
}
private Object converAttributeValue(String type, String value) {
//这里根据属性值的类型做转换,这里只做了int这种类型的判断
if ("int".equals(type) || "java.lang.Integer".equals(type)) {
return new Integer(value);
} else {
return value;
}
}