现在的位置: 首页 > 编程语言 > 正文

java实体对象与Map之间的转换工具类代码实例

2020年02月13日 编程语言 ⁄ 共 1623字 ⁄ 字号 评论关闭

这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Map接口中键和值一一映射. 可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。 当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。 当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。

代码如下

import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map; public class EntityUtils { /** * 实体类转Map * @param object * @return */ public static Map<String, Object> entityToMap(Object object) { Map<String, Object> map = new HashMap(); for (Field field : object.getClass().getDeclaredFields()){ try { boolean flag = field.isAccessible(); field.setAccessible(true); Object o = field.get(object); map.put(field.getName(), o); field.setAccessible(flag); } catch (Exception e) { e.printStackTrace(); } } return map; } /** * Map转实体类 * @param map 需要初始化的数据,key字段必须与实体类的成员名字一样,否则赋值为空 * @param entity 需要转化成的实体类 * @return */ public static <T> T mapToEntity(Map<String, Object> map, Class<T> entity) { T t = null; try { t = entity.newInstance(); for(Field field : entity.getDeclaredFields()) { if (map.containsKey(field.getName())) { boolean flag = field.isAccessible(); field.setAccessible(true); Object object = map.get(field.getName()); if (object!= null && field.getType().isAssignableFrom(object.getClass())) { field.set(t, object); } field.setAccessible(flag); } } return t; } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return t; }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: java实体对象与Map之间的转换工具类代码实例

以上就上有关java实体对象与Map之间的转换工具类代码实例的相关介绍,要了解更多java,Map,转换工具,类内容请登录学步园。

抱歉!评论已关闭.