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转换的主要内容,如果未能解决你的问题,请参考以下文章
json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)