当前位置 : 主页 > 编程语言 > c++ >

map转换javabean

来源:互联网 收集:自由互联 发布时间:2021-06-30
M2Bgo.java import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.util.Map;public class M2Bgo {/** * @return 直接返回JavaBean * @param map * 放入你的Map * @param clazz * 放入你的JavaBean.Cl
M2Bgo.java
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;

public class M2Bgo {
	/**
	 * @return 
 
   直接返回JavaBean
	 * @param map
	 *            放入你的Map
	 * @param clazz
	 *            放入你的JavaBean.Class
	 * @throws 各种异常爱接不接
	 * 
	 * @author MrXionGe
	 * 
	 **/
	public static 
  
    T map2Bean(Map
   
     map, Class
    
      clazz) { T obj = null; try { obj = clazz.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } if (map != null && map.size() > 0) { for (Map.Entry
     
       entry : map.entrySet()) { String propertyName = entry.getKey(); Object value = entry.getValue(); String setMethodName = "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1); Field field = getClassField(clazz, propertyName); if (field == null) continue; Class
       fieldTypeClass = field.getType(); value = convertValType(value, fieldTypeClass); try { clazz.getMethod(setMethodName, field.getType()).invoke(obj, value); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { e.printStackTrace(); } } } return obj; } private static 
      
        Field getClassField(Class
       
         clazz, String fieldName) { if (Object.class.getName().equals(clazz.getName())) { return null; } Field[] declaredFields = clazz.getDeclaredFields(); for (Field field : declaredFields) { if (field.getName().equals(fieldName)) { return field; } } Class
         superClass = clazz.getSuperclass(); if (superClass != null) { return getClassField(superClass, fieldName); } return null; } private static 
        
          Object convertValType(Object value, Class
         
           fieldTypeClass) { Object retVal = null; if (Long.class.getName().equals(fieldTypeClass.getName()) || long.class.getName().equals(fieldTypeClass.getName())) { retVal = Long.parseLong(value.toString()); } else if (Integer.class.getName().equals(fieldTypeClass.getName()) || int.class.getName().equals(fieldTypeClass.getName())) { retVal = Integer.parseInt(value.toString()); } else if (Float.class.getName().equals(fieldTypeClass.getName()) || float.class.getName().equals(fieldTypeClass.getName())) { retVal = Float.parseFloat(value.toString()); } else if (Double.class.getName().equals(fieldTypeClass.getName()) || double.class.getName().equals(fieldTypeClass.getName())) { retVal = Double.parseDouble(value.toString()); } else { retVal = value; } return retVal; } }
         
        
       
      
     
    
   
  
 
DemoVo.java
public class DemoVo {
	private Integer id;
	private String name;
	private Integer age;
	private String addr;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	@Override
	public String toString() {
		return "DemoVo [id=" + id + ", name=" + name + ", age=" + age + ", addr=" + addr + "]";
	}
}
DemoRun.java
import java.util.HashMap;
import java.util.Map;

public class DemoRun {

	public static void main(String[] args) {
		Map
 
   map = new HashMap<>();
		map.put("id", "1701");
		map.put("name", "ZhangSan");
		map.put("age", "24");
		map.put("addr", "Beijing");
		System.out.println("Map----" + map);
		DemoVo vo = M2Bgo.map2Bean(map, DemoVo.class);
		System.out.println("Obj----" + vo);
	}
}
 
网友评论