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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSP中Session的使用

    JSP中Session的使用

    2021年12月6日
    44
  • 跟踪算法(一)光流法跟踪

    跟踪算法(一)光流法跟踪COPYFROM:http://blog.csdn.net/crzy_sparrow/article/details/7407604BTW:原文作者是我学习的榜样!本文目录:     一.基于特征点的目标跟踪的一般方法     二.光流法     三.opencv中的光流法函数    四.用类封装基于光流法的目标跟踪方法     

    2022年7月23日
    16
  • Linux解压文件到指定目录

    Linux解压文件到指定目录tar在Linux上是常用的打包、压缩、加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数参数:-c:create建立压缩档案的参数;-x:解压缩压缩档案的参数;-z:是否需要用gzip压缩;-v:压缩的过程中显示档案;-f:置顶文档名,在f后面立即接文件名,不能再加参数举例:一,将整个/home/www/images目录下的文件全

    2022年4月30日
    46
  • navicat 激活码-激活码分享

    (navicat 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlKUKQYKZ5XE-eyJsaWN…

    2022年3月22日
    64
  • C语言实现学生成绩管理系统设计

    C语言实现学生成绩管理系统设计本系统有**增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统**6大功能。能够对学生的姓名,学号,c语言成绩做相应的操作。在检测到输入成绩大于55时,会自动加上5。该管理系统设计功能模块图:下面是源代码:#include”stdio.h”#include”string”/*定义学生结构体*/structStudent

    2022年6月20日
    27

发表回复

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

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