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


相关推荐

  • mysql format不要逗号_笔记:number_format() 函数去掉数字千分位的逗号

    mysql format不要逗号_笔记:number_format() 函数去掉数字千分位的逗号最近有朋友找我仿站,为了实现某些效果,要去掉访问次数千分位的逗号,说真的,倡萌没有系统学习过PHP,所以只好求教露兜老大,得知可以通过number_format()函数通过千位分组来格式化数字。自己折腾下,还真实现了,记录一下。PHPnumber_format()函数定义和用法number_format()函数通过千位分组来格式化数字。语法number_format(number,de…

    2022年10月20日
    0
  • sdn网络的特点(水环式真空泵的工作原理)

    SDN的工作原理SDN网络架构的三层模型架构主要分为协同应用层,控制层,转发层三层,网络架构本身包括管理平面,控制平面和转发平面,与这三层对应。传统的IP网络具有转发平面,控制平面和管理平面。协同应用层主要是完成用户意图的各种上层应用程序,此类应用程序(APP)成为协同应用程序,典型的协同层包括OSS,Openstack等。控制层是系统的控制中心,负责网络内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。这里注意sdn架构下,sdn控制器直接提供网络业务服务接口,APP就不需关心内部

    2022年4月11日
    36
  • 设计模式初探——简单工厂模式

    设计模式初探——简单工厂模式

    2021年12月3日
    51
  • pycharm调试快捷键_pycharm调试debug入门

    pycharm调试快捷键_pycharm调试debug入门F7(单步调试):若该步骤中存在子函数,会进入子函数中执行单步调试。F8(单步调试):若该步骤中存在子函数,不会进入子函数,把子函数当做单步执行。F9:直接跳到下一个断点。…

    2022年10月24日
    0
  • 指令重排详解_cpu指令重排序

    指令重排详解_cpu指令重排序指令重排:编译器指令重排,cpu指令重排,内存指令重排。编译器可能会调整顺序,如下图,左边是c++源码,右边是优化后顺序一条汇编指令的执行是可以分为很多步骤的,分为不同的硬件执行取指IF译码和取寄存器操作数ID执行或者有效地址计算EX(ALU逻辑计算单元)存储器访问MEM写回WB(寄存器)指令重排只可能发生在毫无关系的指令之间,如果指令之间存在依赖关系,则不会重排。单线程内程序的执行结果不能被改变。1原子性是指一个操作是不可中断的.

    2022年10月17日
    0
  • 小米6最好用的系统版本[通俗易懂]

    小米6最好用的系统版本[通俗易懂]小米6最好用的系统版本小米6最好用的系统稳定版10.4.3首先说一下为什么这个版本的系统我认为最好用,因为自己是米粉,也比较喜欢用最新的系统,去年用小米6收到了10.4.2版本的系统更新,体验之后感觉真的很nice,安卓9流畅度提升非常高,包括软件的启动速度,各项反应,但是有一些小瑕疵,比如断流,软件闪退,系统掉帧,然后过了一段时间小米推送了10.4.3稳定版,修复了这三个问题,体验至今为止,没有其他任何问题该版本优点总结如下第一,该版本基于miui10,系统简单易用,基本上算是miui的一个小成的

    2022年6月27日
    106

发表回复

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

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