Class cls=Class.forName("accp.jsj.gm.pojo.FoodInfo");
Field[] fields=cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field fld = fields[i];
fld.setAccessible(true);
Object value=map.get(fld.getName());
if(fld.getType().toString().equals("class java.lang.Double"))
fld.set(foodInfo,Double.parseDouble(value.toString()));
else
fld.set(foodInfo,value);
大家帮我看下反射得到JavaBean的时候能不能不判断字段类型
直接 赋值的 ?
谢谢
Field[] fields=cls.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field fld = fields[i];
fld.setAccessible(true);
Object value=map.get(fld.getName());
if(fld.getType().toString().equals("class java.lang.Double"))
fld.set(foodInfo,Double.parseDouble(value.toString()));
else
fld.set(foodInfo,value);
大家帮我看下反射得到JavaBean的时候能不能不判断字段类型
直接 赋值的 ?
谢谢
@SuppressWarnings("unchecked")
public static Object formatObject(HttpServletRequest request,
String className) throws Exception {
Object object = Class.forName(className).newInstance();
Class classType = object.getClass();
Field[] fields = classType.getDeclaredFields();
for (Field field : fields) {
String fieldName = field.getName();
Object value = request.getParameter(className);
String methodName = "set" + fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
Method setterMethod = classType.getMethod(methodName,
new Class[] { field.getType() });
if (value != null && !"".equals(value) && "" != value
&& setterMethod != null) {
if (field.getType().toString().equals("class java.lang.Double")) {
setterMethod.invoke(object, new Object[] { Double
.parseDouble(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Integer")) {
setterMethod.invoke(object, new Object[] { Integer
.parseInt(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Long")) {
setterMethod.invoke(object, new Object[] { Long
.parseLong(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Float")) {
setterMethod.invoke(object, new Object[] { Float
.parseFloat(value.toString()) });
} else {
setterMethod.invoke(object, new Object[] { value });
}
} } return object;
}
public static Object formatObject(HttpServletRequest request,
String className) throws Exception {
Object object = Class.forName(className).newInstance();
Class classType = object.getClass();
Field[] fields = classType.getDeclaredFields();
for (Field field : fields) {
String fieldName = field.getName();
Object value = request.getParameter(className);
String methodName = "set" + fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
Method setterMethod = classType.getMethod(methodName,
new Class[] { field.getType() });
if (value != null && !"".equals(value) && "" != value
&& setterMethod != null) {
if (field.getType().toString().equals("class java.lang.Double")) {
setterMethod.invoke(object, new Object[] { Double
.parseDouble(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Integer")) {
setterMethod.invoke(object, new Object[] { Integer
.parseInt(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Long")) {
setterMethod.invoke(object, new Object[] { Long
.parseLong(value.toString()) });
} else if (field.getType().toString().equals(
"class java.lang.Float")) {
setterMethod.invoke(object, new Object[] { Float
.parseFloat(value.toString()) });
} else {
setterMethod.invoke(object, new Object[] { value });
}
} } return object;
}