(1)Map转化为实体类
/*** * convert map to object ,see setObjectValue(obj, map) * @param map : key是对象的成员变量,其value就是成员变量的值 * @param clazz * @return * @throws InstantiationException * @throws IllegalAccessException * @throws SecurityException * @throws NoSuchFieldException * @throws IllegalArgumentException */ public static Object convertMap2Obj(Map<String, Object> map,Class clazz) throws InstantiationException, IllegalAccessException, SecurityException, NoSuchFieldException, IllegalArgumentException{ if(ValueWidget.isNullOrEmpty(map)){ return null; } Object obj=clazz.newInstance(); setObjectValue(obj, map); /*for(Iterator it=map.entrySet().iterator();it.hasNext();){ Map.Entry<String, Object> entry=(Map.Entry<String, Object>)it.next(); String key=entry.getKey(); Object val=entry.getValue(); }*/ return obj; }
/*** * 利用反射设置对象的属性值. 注意:属性可以没有setter 方法. * * @param obj * @param params * @throws SecurityException * @throws NoSuchFieldException * @throws IllegalArgumentException * @throws IllegalAccessException */ public static void setObjectValue(Object obj, Map<String, Object> params) throws SecurityException, IllegalArgumentException, IllegalAccessException, NoSuchFieldException { if(ValueWidget.isNullOrEmpty(obj)){ return; } if (ValueWidget.isNullOrEmpty(params)) { return; } Class<?> clazz = obj.getClass(); for (Iterator it = params.entrySet().iterator(); it.hasNext();) { Map.Entry<String, Object> entry = (Map.Entry<String, Object>) it .next(); String key = entry.getKey(); Object propertyValue = entry.getValue(); if (ValueWidget.isNullOrEmpty(propertyValue)) { continue; } Field name = getSpecifiedField(clazz, key); if (name != null) { name.setAccessible(true); name.set(obj, propertyValue); } } }
(2)把实体类转化为Map
/*** * convert entity to Map * @param obj * @param excludeProperties * @param excludeZero : 是否过滤zero * @return * @throws SecurityException * @throws NoSuchFieldException * @throws IllegalArgumentException * @throws IllegalAccessException */ public static Map convertObj2Map(Object obj, String[] excludeProperties, boolean excludeZero) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { Map map = new HashMap(); List<Field> fieldsList = ReflectHWUtils.getAllFieldList(obj.getClass()); for (int i = 0; i < fieldsList.size(); i++) { Field f = fieldsList.get(i); if (SystemHWUtil.isContains(excludeProperties, f.getName())) { continue; } Object propertyValue = ReflectHWUtils.getObjectValue(obj, f); if (excludeZero) { if (propertyValue instanceof Integer) { int ii = (Integer) propertyValue; if (ii == 0) { continue; } } else if (propertyValue instanceof Long) { int ii = ((Long) propertyValue).intValue(); if (ii == 0) { continue; } } } if (!ValueWidget.isNullOrEmpty(propertyValue)) { map.put(f.getName(), propertyValue); } } return map; }
调用:
Map condition = null; try { condition = ReflectHWUtils.convertObj2Map(roleLevel, columns, true); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
jar包见附件 中的/Users/whuanghkl/work/project/io0007/src/main/java/com/common/util/ReflectHWUtils.java
相关推荐
在Java编程中,Map对象和Java实体类是两种常见的数据结构。Map对象通常用于存储键值对,而实体类则代表数据库中的记录或者业务逻辑中的对象。在实际开发中,我们有时需要将Map对象的数据转换为Java实体对象,以便...
这个压缩包文件“基于java8新特性+反射机制实现list不同实体类互转.zip”提供了一种解决方案,它利用了Java 8的新特性和反射机制来实现这种转换,并将这个功能封装为一个工具类。 首先,Java 8引入了许多新特性,...
`MapUtils`工具类就是为了解决这样的问题而设计的,它简化了`Map`对象和实体类之间的转换过程。本篇文章将深入探讨`MapUtils`工具类的使用及其在Java开发中的重要性。 首先,让我们了解一下实体类。在Java中,实体...
将java实体类转换为map mybatis里用map更方便
Java项目实体类转换实例 在Java项目中,实体类转换是指将一个实体类对象转换为另一个实体类对象的过程。在这种情况下,我们可以使用Dozer库来实现实体类转换。Dozer是一个开源的Java类库,用于将一个Java对象转换...
将XML数据转换为Java实体类(Bean)以及将实体类转换回XML是两个重要的操作,这对于数据的序列化和反序列化至关重要。下面将详细解释这两个过程以及涉及的相关知识点。 首先,XML转实体类的过程通常涉及到Java的...
将一个 Map对象转化为JavaBean的形式返回,抛弃一些出现异常的问题与方法,遵循Java开发规范
总的来说,Java的Pojo到Map的转换是提高代码可读性和灵活性的有效手段,尤其是在JSP页面数据绑定时。通过利用反射API,我们可以轻松地实现这一转换,从而简化编程工作。当然,使用这种方式时要注意性能影响,因为...
java map转实体可以利用java的反射去封装,于是就在hibernate的工具类下试着封装了下,封装完了之后感觉没必要,这完全就可以提取出来变成一个独立的工具类,而不仅仅局限于hibernate了,这样既可以满足一个hql查询...
Java中关于Json格式转化Object,Map,Collection类型和String类型之间的转化在我们实际项目中应用的很是普遍和广泛。最近工作的过程中也是经常有,因此,自己封装了一个类分享给大家。
Java实体对象与Map之间的转换是Java开发中的一项常见操作,本文将通过示例代码详细介绍如何实现Java实体对象与Map之间的转换,包括实体类转Map和Map转实体类两种方式。 实体类转Map 在Java开发中,我们经常需要将...
通过`json-lib`和`ezmorph`这两个库,开发者可以轻松地在Java程序中处理JSON数据,而`JsonUtil.java`工具类则进一步简化了这一过程,提高了开发效率。在实际开发中,了解和掌握这些工具的使用方法对于提升JSON处理...
在Java 8中将List转换为Map对象方法 在Java 8中,将List转换为Map对象是一种非常实用的技术,特别是在处理大规模数据时非常有用。本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 ...
在Java开发中,MapStruct是一个非常实用的代码生成库,它简化了对象之间的映射过程,尤其是当对象之间存在复杂的转换逻辑时。本示例主要介绍如何在MapStruct中自定义类转换,以便处理特定的转换需求。我们将通过分析...
在本文中,我们将深入探讨通用适配器的实现,特别是在使用实体类(Entity Class)和Map数据结构时的情况。我们还将提及如何在Android Studio项目中实现这一功能。 首先,通用适配器(Generic Adapter)是为了处理...
FastJSON是阿里巴巴开发的一款高性能的Java JSON库,它...其简单易用的API使得开发人员可以快速地在Java对象和JSON之间进行转换,提高了开发效率。如果你正在寻找一个方便、快速的JSON解决方案,FastJSON绝对值得考虑。
在springboot中发起post请求时,需要参数集合,一般参数为我们的实体类中的属性,可以简化业务代码,不用一个一个传参数
Java 中 Map 和对象互转工具类的实现示例 本文主要介绍了 Java 中 Map 和对象互转工具类的实现示例,通过示例代码介绍了非常详细,对大家的学习或者工作具有一定的参考学习价值。 Map 转对象 在项目开发中,经常...
在Java中实现行转列,通常涉及数据结构的转换,如从List<List<String>>转换为List,或者更复杂地,从Map, Object>到自定义对象的集合。以下是一些关键知识点: 1. 数据结构理解: - **List**: Java中的List接口...
通过以上步骤,我们可以高效地将多层集合嵌套的JSON数据转换为Java对象,方便在Java程序中进行处理和操作。这种方法在实际开发中非常常见,特别是在处理来自Web服务、API接口或其他系统的JSON数据时。熟练掌握JSON...