map和bean转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map和bean转换相关的知识,希望对你有一定的参考价值。

参考技术A package com.test;

import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

import org.apache.commons.beanutils.BeanUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import com.pojo.User;

public class TestMapBeanConvert

    private static Logger LOGGER = LoggerFactory.getLogger(TestMapBeanConvert.class);

    // 将map转为bean

    public staticT mapToBean(Map<String, Object> map, Class clz)

        T bean = null;

        try

              bean = clz.newInstance();

            // 遍历map中的key,若bean中有这个属性(key),将key对应的value赋值给bean对应的属性

            BeanUtils.populate(bean, map); // 将map转为bean

        catch (Exception e)

            LOGGER.info("ERROR ------> " + e.getMessage());

       

        return bean;

   

    // 将bean转为map

    public staticMapbeanToMap(Object bean)

        Map<String, String> map = null;

        try

            map = BeanUtils.describe(bean); // 将bean转为map

        catch (Exception e)

              LOGGER.info("ERROR ------> " + e.getMessage());

       

       return map;

       

       public static void main(String[] args)

              Map<String, Object> map = new HashMap<String, Object>();

              map.put("name", "六月");

              map.put("age",6);

              System.err.println("-------------------- from map to bean --------------------");

              User user = mapToBean(map, User.class);System.err.println(user.toString());

              System.err.println("-------------------- from bean to map --------------------");

              Map<String, String> toMap = beanToMap(user);

              for(Entry<String, String> entry:toMap.entrySet())

                     System.out.println("key=" +entry.getKey() +" and value="+entry.getValue()); 

               

       

最常用的工具类库

 

Apache Commons

Apache Commons有很多子项目,常用的项目如下

技术图片

BeanUtils

提供了一系列对java bean的操作,读取和设置属性值等

技术图片

技术图片

map和bean的互相转换

技术图片

我们将对象放在缓存中通常用redis中的hash,如下

技术图片

这种场景下map和bean的互相转换的工具类就特别有用

Codec

常见的编码,解码方法封装

技术图片

Collections

交并差等操作

技术图片

I/O

IOUtils对IO操作的封装

技术图片

FileUtils对文件操作类的封装

技术图片

Lang

StringUtils 以下断言测试通过

技术图片

Pair和Triple

当想返回2个或3个值,但这几个值没有相关性,没有必要单独封装一个对象,就可以用到如下数据结构,返回Pair或Triple对象

技术图片

Google Guava

集合的创建

技术图片

不可变集合是线程安全的,并且中途不可改变,因为add等方法是被声明为过期,并且会抛出异常

技术图片

各种黑科技集合

技术图片

2个键映射一个值

技术图片

还有很多其他各种类型的集合,不再介绍

stop watch

查看某段代码的运行时间

技术图片

TimeUnit 可以指定时间精度

Joda Time

jdk1.8之前,日期操作类常用的只有java.util.Date和java.util.Calendar,但是这2个类的易用性实在太差了,SimpleDateFormat不是线程安全的 。这就逼迫用户去选择第三方的日期操作类,Joda Time就是其中的佼佼者。后来Java自身也意识到了这个问题,于是jdk1.8大量借鉴了Joda Time的理念,推出了新的日期api,LocalDate ,LocalTime,LocalDateTime等,可以看如下文章了解一下用法、    https://blog.csdn.net/zzti_erlie/article/details/100849192  2者的api很相似,如果公司的jdk版本在1.8以上推荐使用jdk1.8新推出的日期类,如果在1.8以下推荐使用Joda Time 。

 


作者:小林啊
链接:https://juejin.im/post/5de7428de51d4557f42b4f7d
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上是关于map和bean转换的主要内容,如果未能解决你的问题,请参考以下文章

JavaBean和Map转换封装类

JavaBean和Map转换封装类

Kotlin map 转换为数据bean

json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

对象Bean与Map互转问题

map转bean速度主要依赖啥