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;
    	}
    

      

  • 相关阅读:
    一个BUG显示了IE7和IE6解析URL中中文参数能力的不同
    Winform+Webservice小结
    精通 JS正则表达式
    JSON
    Jquery
    MongoDB 驱动实践
    概要设计(总体设计)
    LINQ 学习
    MongoDB培训
    数据流程图(需求分析方法和建模工具)
  • 原文地址:https://www.cnblogs.com/wangjinyu/p/10967888.html
Copyright © 2011-2022 走看看