Java对象转Map,Map转对象

Java对象转Map,Map转对象1map转对象map中value的值类型一定要和对象中的属性一致publicclassTest{/***@parammap*@parambean泛型类*@param<T>*@return*/publicstatic<T>TmapToBean(Map<String,Object>map,Tbean){BeanMapbean

大家好,又见面了,我是你们的朋友全栈君。

1 map 转 对象

map中value的值类型 一定要和 对象中的属性一致

public class Test {
    /**
     * @param map
     * @param bean 泛型类
     * @param <T>
     * @return
     */
    public static <T> T mapToBean(Map<String, Object> map, T bean) {
        BeanMap beanMap = BeanMap.create(bean);
        beanMap.putAll(map);
        return bean;
    }

    public static void main(String[] args) {
        Brush brush = new Brush();
        Map map = new HashMap<String, Object>();
        // 注意类型 字符串是没关系的
        map.put("shopName","张三的店");
        // 一定要是LocalDate
        map.put("date", LocalDate.now());
        // 一定要是Long
        map.put("shopId",1L);
        System.out.println(mapToBean(map,brush).getShopName());
        System.out.println(mapToBean(map,brush).getDate());
        System.out.println(mapToBean(map,brush).getShopId());
    }
}    
张三的店
2021-04-30
1

2 对象 转 map

public class Test {
    /**
     * @param bean
     * @param <T>
     * @return
     */
    public static <T> Map<String, Object> beanToMap(T bean) {
        Map<String, Object> map = Maps.newHashMap();
        if (bean != null) {
            BeanMap beanMap = BeanMap.create(bean);
            for (Object key : beanMap.keySet()) {
                map.put(key + "", beanMap.get(key));
            }
        }
        return map;
    }

    public static void main(String[] args) {
        Brush brush = new Brush();
        brush.setShopName("李四的店");
        brush.setShopId(2L);
        brush.setDate(LocalDate.now());
        Map<String, Object> map = beanToMap(brush);
        System.out.println(map.get("shopName"));
        System.out.println(map.get("shopId"));
        System.out.println(map.get("date"));
    }
}
李四的店
2
2021-04-30

两个方法mapToBean()和beanToMap()直接copy过去就能用,map转对象的时候一定要注意值类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131490.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hibernate执行原生sql_hibernate的find方法

    hibernate执行原生sql_hibernate的find方法如果查询返回多个值用list()方法[java] viewplaincopyprint?public void testQuery(){          Configuration config = new Configuration().configure();          SessionFactory factory =

    2022年9月3日
    3
  • NV12 to RGB

    NV12 to RGBtypedefunsignedcharUINT8;typedefunsignedintUINT32;staticUINT8RTable[256][256];staticUINT8GTable[256][256][256];staticUINT8BTable[256][256];staticvoidNV12_T_RGB_Table(){inty,u,v,res;for(y=0;y<=255;y++).

    2022年9月13日
    0
  • jenkins 邮件_邮件发送服务

    jenkins 邮件_邮件发送服务前言前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。安装EmailExtensionPlugin插件jenkins首页-

    2022年7月28日
    4
  • Windows10下安装linux(Utunbu)双系统「建议收藏」

    Windows10下安装linux(Utunbu)双系统「建议收藏」电脑的硬盘应该是mbr模式1.正常安装windows10系统2.打开windows10系统,安装EaSYCBD2.243.右键系统菜单,打开磁盘管理选择一个硬盘压缩100g(自己定义,不少于50G)。4.打开电源选项,关闭快速启动5.插入Untunbu启动盘,重启进入BIOS,关闭SecureBOOT,并以USB为第一启动项6.进入Untunbu,选择installUtunbu,不要联网,然后选择挂载点。10-20G的“/”,主区,etx4;200MB的“/boot”逻辑分区,etx

    2022年7月24日
    5
  • 希尔排序算法(C语言实现)

    希尔排序算法(C语言实现)希尔排序算法 demo

    2025年6月9日
    0
  • ubuntu 局域网传输文件

    ubuntu 局域网传输文件scp[可选参数]file_sourcefile_target参数说明:-1:强制scp命令使用协议ssh1 -2:强制scp命令使用协议ssh2 -4:强制scp命令只使用IPv4寻址 -6:强制scp命令只使用IPv6寻址 -B:使用批处理模式(传输过程中不询问传输口令或短语) -C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p:保留原文件的修改时间,访问时间和访问权限。 -q:不显示传输进度条。 -r:递归复制整个目录。 -v:详细方.

    2022年5月24日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号