JAVA拷贝Map中的值到对象

在java中写接口,很多都是以JSON方式传参,  然后再序列化成各种对象~~~

Map也是其中一种,  但是呢,Map中的参数有可能是很多个对象属性都在里面,   难道我要一个个的去get(“aa”),get(“bb”),get(“cc”).......这样我觉得太low了。。。

然后我就写了一个拷贝的东西,   你只要给我一个Map,   一个对象,  我就把这个Map中的key=对象字段名的值,都拷贝到对象中去,  这样就不用一个个get,然后再去set了。。。

注意哦~~~   Map中的 key 要等于 字段名

代码代码代码代码代码代码代码代码代码代码!!


/**
     * 根据Map中的key对应对象的属性来更新对象的值
     * <li>
     *         updateProperties中的key必须跟bean中的字段名保持一致才能更新
     * </li>
     * @param updateProperties 要更新的字段以及值
     * @param bean 要更新的对象
     * @author wangyijie
     */
    public static <T> void copyPropertiesInclude(Map<String, Object> updateProperties, T bean){
         Set<Map.Entry<String, Object>> revisabilityFiledSet = updateProperties.entrySet();
         for (Map.Entry<String, Object> entry : revisabilityFiledSet) {
            Object value = entry.getValue();
            if(value != null){
                try {
                    org.apache.commons.beanutils.BeanUtils.setProperty(bean, entry.getKey(), value);
                } catch (Exception e) {
                    logger.error("从Map{} 复制 到对象 {} 属性{} 错误key{} 异常", updateProperties.getClass(),bean.getClass(), entry.getKey(),e);
                }
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/Architect_CSDN/article/details/83278249
今日推荐