zoukankan      html  css  js  c++  java
  • java 将map转为实体类

    使用反射将map转为对象,如果不使用反射的话需要一个get一个set写起来麻烦,并且不通用,所以写了一个通用的方法将map集合转为对象,直接看代码,注释也都挺清楚的

    public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
    		
    	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            
    		if (map == null) {
    			return null;
    		}
    		T obj = null;
    		try {
    			// 使用newInstance来创建对象
    			obj = clazz.newInstance();
    			// 获取类中的所有字段
    			Field[] fields = obj.getClass().getDeclaredFields();
    			for (Field field : fields) {
    				int mod = field.getModifiers();
    				// 判断是拥有某个修饰符
    				if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
    					continue;
    				}
    				// 当字段使用private修饰时,需要加上
    				field.setAccessible(true);
    				// 获取参数类型名字
    				String filedTypeName = field.getType().getName();
    				// 判断是否为时间类型,使用equalsIgnoreCase比较字符串,不区分大小写
    				// 给obj的属性赋值
    				if (filedTypeName.equalsIgnoreCase("java.util.date")) {
    					String datetimestamp = (String) map.get(field.getName());
    					if (datetimestamp.equalsIgnoreCase("null")) {
    						field.set(obj, null);
    					} else {
    						field.set(obj, sdf.parse(datetimestamp));
    					}
    				} else {
    					field.set(obj, map.get(field.getName()));
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return obj;
    	}
    

      

  • 相关阅读:
    poj3678 Katu Puzzle
    poj3621 Sightseeing Cows
    0x66 Tarjan算法与无向图联通性
    0x63树的直径与最近公共祖先
    bzoj2260: 商店购物&&4349: 最小树形图
    BLACK PHOSPHORUS: THE NEW GRAPHENE?
    人机大战中AlphaGo及其执子人黄士杰
    Qt qobject_cast用法 向下转型
    QT QMimeData类
    QT 实现拖放功能
  • 原文地址:https://www.cnblogs.com/wangjinyu/p/10967888.html
Copyright © 2011-2022 走看看