首页 > 其他分享 >map和bean转换工具类

map和bean转换工具类

时间:2023-04-06 15:13:59浏览次数:42  
标签:map 转换 Map field bean import obj

bean转Map:

Map转bean:

完整代码:

点击查看代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Map;

/**
 * map转bean
 * @author Sappy
 * @date 3/7/2023 11:55:49
 */
public class MapBeanUtils {

    private static Logger logger = LoggerFactory.getLogger(MapBeanUtils.class);
    /**
     * bean转Map
     *
     * @param obj
     * @return
     */
    public static Map<String, Object> object2Map(Object obj) {
        Map<String, Object> map = new HashMap<>();
        if (obj == null) {
            return map;
        }
        Class clazz = obj.getClass();
        Field[] fields = clazz.getDeclaredFields();
        try {
            for (Field field : fields) {
                field.setAccessible(true);
                map.put(field.getName(), field.get(obj));
            }
        } catch (Exception e) {
            logger.error("MapBeanUtils Convert ERROR!!!" , e);
        }
        return map;
    }

    /**
     * Map转bean
     *
     * @param map
     * @param clazz
     * @return
     */
    public static Object map2Object(Map<String, Object> map, Class<?> clazz) {
        if (map == null) {
            return null;
        }
        Object obj = null;
        try {
            obj = clazz.newInstance();
            Field[] fields = obj.getClass().getDeclaredFields();
            for (Field field : fields) {
                int mod = field.getModifiers();
                if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                    continue;
                }
                field.setAccessible(true);
                field.set(obj, map.get(field.getName()));
            }
        } catch (Exception e) {
            logger.error("MapBeanUtils Convert ERROR!!!" , e);
        }
        return obj;
    }


}

标签:map,转换,Map,field,bean,import,obj
From: https://www.cnblogs.com/Sappy/p/17292804.html

相关文章

  • bean转换工具类
    单个:LIST:完整代码:点击查看代码importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.BeanUtils;importjava.util.ArrayList;importjava.util.Collection;importjava.util.List;publicclassConvertUtils{priva......
  • map的两种遍历方式是什么
    学了Map后,我们都知道Map有两种遍历方式,keySet遍历个entrySet遍历,这里简单介绍一下这两种遍历方式。首先对于一个Map来说,右key列和value列组成,想遍历这个Map,有两种选择第一种keyset的想法是先得到其key列,使用Map的get(key)方法来获取其对应的值,如下图:对应的代码是:第二种思......
  • kubernetes ConfigMap只挂载一个文件
    1.概述挂载一整个目录的方式详见<<kubernetesConfigMap的使用>>这里特别说明如何挂载目录和挂载一个文件详见官方文档:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-pod-configmap/2.环境2.1.配置文件目录/var/app/mage-go-device/conf/......
  • Map自定义key,然后把value的集合List进行指定字段排序
    packagecom.zdft.purchase;importcom.google.common.collect.Lists;importjava.util.*;importjava.util.stream.Collectors;publicclassStudentMethod{//需求:Map自定义key,然后把value的集合List进行指定字段排序;例如:多次考试,取最高分的集合展示publics......
  • 探测工具nmap简介及使用说明
    1.前言:当我们在构建环境或排查问题时,常常是先确定环境是否正常,首要确定的就是当前ip是否可用,或是是否在使用,将要使用的端口是否已配置等进行,除了我们常用的ping或是telnet工具外,还有别一种工具nmap,可以说是扫描神器。接下来就让我简单的给大家介绍一下nmap吧。2.nmap简介:本人使用......
  • 深度学习基础入门篇[二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、
    A.深度学习基础入门篇[二]:机器学习常用评估指标:AUC、mAP、IS、FID、Perplexity、BLEU、ROUGE等详解1.基础指标简介机器学习的评价指标有精度、精确率、召回率、P-R曲线、F1值、TPR、FPR、ROC、AUC等指标,还有在生物领域常用的敏感性、特异性等指标。在分类任务中,各指标的计算......
  • map的两种遍历方式是什么
    学了Map后,我们都知道Map有两种遍历方式,keySet遍历个entrySet遍历,这里简单介绍一下这两种遍历方式。首先对于一个Map来说,右key列和value列组成,想遍历这个Map,有两种选择第一种keyset的想法是先得到其key列,使用Map的get(key)方法来获取其对应的值,如下图:对应的代码是:第二种思想是这样的......
  • ES6 => map、filter方法的区别
    letdataArr=[{name:450200000,code:1},{name:450300000,code:2}....] map:会返回执行map方法的数组(dataArr),的所有项(条件不成立也会返回undefined),可以只返回项中的某一参数 filter:会返回执行filter方法的数组(dataArr),条件成立的项,会返回整个遍历的项(不能只返回项中的某一......
  • 聊聊spring中bean的作用域
    前言今天分享一下springbean的作用域,理解bean的作用域能够在使用过程中避免一些问题,bean的作用域也是springbean创建过程中一个重要的点。Springbean的作用域类型singleton(单例模式):在整个应用程序的生命周期中,只创建一个Bean实例。默认情况下,所有的Bean都是单例模式。p......
  • 网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议
    网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的......