一、Map转化为JavaBean
public static Object mapToObject(Object model, Map,String> map) {
try {
// 创建 JavaBean 对象
Class clazz =Class.forName(model.getClass().getName());
Object obj = clazz.newInstance();
Field[] field = obj.getClass().getDeclaredFields();
System.out.println(field.toString());
if (field != null && field.length > 0) {
for (int j = 0; j < field.length; j++) {
String name = field[j].getName(); // 获取属性的名字
System.out.println(name);
String type=field[j].getGenericType().toString();
PropertyDescriptor pd = new PropertyDescriptor(name, clazz);
Method m = pd.getWriteMethod();//获得写方法
String value = map.get(name)+"";// 获取对应属性值
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class
// ",后面跟类名
if (StringUtil.isBlank(value))
m.invoke(obj,"");
else
m.invoke(obj,value);
}
if (type.equals("class java.lang.Integer") || type.equals("int")) {
if (StringUtil.isBlank(value))
m.invoke(obj,0);
else
m.invoke(obj,Integer.valueOf(value));
}
if (type.equals("class java.lang.Boolean") || type.equals("boolean")) {
if (StringUtil.isBlank(value))
m.invoke(obj,false);
else
m.invoke(obj,Boolean.getBoolean(value));
}
if (type.equals("class java.lang.Long") || type.equals("long")) {
if (StringUtil.isBlank(value))
m.invoke(obj,0L);
else
m.invoke(obj,Long.valueOf(value));
}
if (type.equals("class java.lang.Double") || type.equals("double")) {
if (StringUtil.isBlank(value))
m.invoke(obj,0.0);
else
m.invoke(obj,Double.valueOf(value));
}
if (type.equals("class java.util.Date")) {
if (StringUtil.isBlank(value))
continue;
else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=format.parse(value);
m.invoke(obj,date);
}
}
if (type.equals("class java.sql.Date")) {
if (StringUtil.isBlank(value))
continue;
else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String time = format.format(value);
m.invoke(obj,java.sql.Date.valueOf(value));
}
}
}
return obj;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
二、JavaBean转Map
public static Map, String> changeToMap(Object model) {
Map, String> map = new HashMap, String>();
if (model == null) {
return map;
}
Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
String newname = "";
// StringUtils.parseRedisStr();
try {
for (int j = 0; j < field.length; j++) {
// 遍历所有属性
String name = field[j].getName(); // 获取属性的名字
if ("KEY".equals(name) || "COLUMN_FLAG".equals(name) || "serialVersionUID".equals(name))
continue;
newname = name.toLowerCase();
name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
String type = field[j].getGenericType().toString(); // 获取属性的类型
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class
// ",后面跟类名
Method m = model.getClass().getMethod("get" + name);
String value = (String) m.invoke(model); // 调用getter方法获取属性值
if (value == null)
map.put(newname, "");
else
map.put(newname, value);
}
if (type.equals("class java.lang.Integer") || type.equals("int")) {
Method m = model.getClass().getMethod("get" + name);
Integer value = (Integer) m.invoke(model);
if (value == null)
map.put(newname, "0");
else
map.put(newname, value + "");
}
if (type.equals("class java.lang.Boolean") || type.equals("boolean")) {
Method m = model.getClass().getMethod("get" + name);
Boolean value = (Boolean) m.invoke(model);
if (value == null)
map.put(newname, "false");
else
map.put(newname, "" + value);
}
if (type.equals("class java.lang.Long") || type.equals("long")) {
Method m = model.getClass().getMethod("get" + name);
Long value = (Long) m.invoke(model);
if (value == null)
map.put(newname, "0");
else
map.put(newname, "" + value);
}
if (type.equals("class java.lang.Double") || type.equals("double")) {
Method m = model.getClass().getMethod("get" + name);
Double value = (Double) m.invoke(model);
if (value == null)
map.put(newname, "0.0");
else
map.put(newname, "" + value);
}
if (type.equals("class java.util.Date")) {
Method m = model.getClass().getMethod("get" + name);
Date value = (Date) m.invoke(model);
if (value == null)
map.put(newname, "");
else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(value);
map.put(newname, time);
}
}
if (type.equals("class java.sql.Date")) {
Method m = model.getClass().getMethod("get" + name);
Date value = (Date) m.invoke(model);
if (value == null)
map.put(newname, "");
else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String time = format.format(value);
map.put(newname, time);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}