最近写接口规范时,规定用Map类型传递参数,因此写了一个Map和Bean互转的工具类。
主要技术利用java的反射。
import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; /** * @author 杜群星 * */ public class MyConverUtil { private static Logger log = Logger.getLogger("MyConverUtil"); public static Map<String, Object> PO2Map(Object o) throws Exception{ Map<String, Object> map = new HashMap<String, Object>(); Field[] fields = null; String clzName = o.getClass().getSimpleName(); log.info("类:"+o.getClass().getName()); fields = o.getClass().getDeclaredFields(); log.info("***"+clzName+"转map开始****"); for (Field field : fields) { field.setAccessible(true); String proName = field.getName(); Object proValue = field.get(o); map.put(proName.toUpperCase(), proValue); log.info("key:"+proName+"value:"+proValue); } log.info("***"+clzName+"转map结束****"); return map; } public static Object map2PO(Map<String,Object> map,Object o) throws Exception{ if (!map.isEmpty()) { for (String k : map.keySet()) { Object v = ""; if (!k.isEmpty()) { v = map.get(k); } Field[] fields = null; fields = o.getClass().getDeclaredFields(); String clzName = o.getClass().getSimpleName(); log.info("类:"+o.getClass().getName()); log.info("***map转"+clzName+"开始****"); for (Field field : fields) { int mod = field.getModifiers(); if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){ continue; } if (field.getName().toUpperCase().equals(k)) { field.setAccessible(true); field.set(o, v); log.info("key:"+k+"value:"+v); } } log.info("***map转"+clzName+"结束****"); } } return o; } }
相关推荐
在Java编程中,Java Bean和Map是两种常用的...总的来说,Java Bean和Map之间的互转在Java开发中非常常见,尤其是在数据交换和视图渲染时。理解并掌握这两种数据结构的转换技巧,有助于提升开发效率和代码的可维护性。
在Map到Bean的转换中,我们通常会寻找Map中的键与Bean的属性名相对应,然后通过反射调用setter方法来设置属性值。 具体到Java Map转换成Bean的过程,以下是一个简单的示例: ```java public class BeanUtils { ...
总结来说,`MapUtils`和`BeanUtils`是Java开发中处理数据转换的重要工具,它们极大地简化了Map与Bean之间的转换操作,提高了代码的可读性和可维护性。了解和熟练运用这些工具类,能够使我们的开发工作更加高效。在...
在Java编程中,Java Bean对象和Map之间的转换是常见的数据操作。这主要涉及到对象属性与键值对之间的映射,方便数据的存储、传递和处理。在这个主题中,我们将深入探讨如何使用Fastjson和BeanMap两个库来实现这种...
本示例将详细介绍如何通过两种方法实现策略模式:一种是通过Map存储方式,另一种是通过配置文件加反射方式。 首先,我们理解策略模式的基本结构。策略模式包含三个主要角色:策略接口(Context)、具体策略类...
使用 Java 反射机制可以实现 Object 和 Map 之间的转换。可以使用 Field 对象来访问 Object 的成员变量,并将其转换为 Map 对象。同时,使用反射机制也可以将 Map 对象转换为 Object 对象。 ```java public Map, ...
总结一下,Map和Object互转以及Map和JSON互转是Java Web开发中常见的需求。前者可以通过反射、Apache Commons BeanUtils或者Introspector类来实现,而后者则可以使用专门的JSON处理库如Gson、Jackson或Fastjson。...
描述 :"主要给大家介绍了关于基于Java反射的map自动装配JavaBean工具类设计的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起看看吧" ...
总结起来,`Map`和`JavaBean`的相互转换在Java开发中是常见需求,通过反射机制可以高效地实现这一功能。在处理大量数据转换时,自定义的转换工具类如`collectionUtils`能够极大提升开发效率,使代码更加简洁和易懂。...
Java中实现Map与对象相互转换是许多开发者经常遇到的问题,本文将介绍五种实现Map与对象相互转换的方法,每种方法都将通过示例代码进行详细的介绍。 方法一:使用org.apache.commons.beanutils转换 该方法使用org....
在Java中,我们可以使用JAXB(Java Architecture for XML Binding)进行XML与Java对象之间的双向绑定,或者使用DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等API来...
理解其工作原理和源码有助于我们更有效地使用这个工具,同时也能提升对Java反射和类型转换的理解。通过深入阅读给出的博文链接,开发者可以进一步掌握如何在实际项目中利用BeanMapper优化代码,提高代码的可维护性和...
java map转实体可以利用java的反射去封装,于是就在hibernate的工具类下试着封装了下,封装完了之后感觉没必要,这完全就可以提取出来变成一个独立的工具类,而不仅仅局限于hibernate了,这样既可以满足一个hql查询...
### JSON与Java对象互转:深入理解与实践 在现代软件开发中,JSON(JavaScript Object Notation)作为数据交换的标准格式之一,其轻量级、易于读写的特点使其成为跨平台数据传输的首选。Java作为一种广泛使用的编程...
通过`DYNC_Object.java`的示例,我们可以学习如何利用反射来实现bean的`set`和`get`操作,这为我们提供了更大的程序设计自由度,使得代码能够适应不断变化的需求。理解并熟练掌握这一技术,对于提升Java开发能力非常...
本文将详细介绍如何实现Java中的Map转Object与Object转Map,并提供相关的代码示例。 1. **Map转Object** Map转Object主要是将Map中的键值对填充到一个指定类型的对象中,这里我们以一个名为`User`的实体类为例。...
本文将详细介绍如何使用Java反射来实现Map到Object以及Object到Map的转换。 首先,让我们理解Map和Object的基本概念。Map接口是Java集合框架的一部分,它存储键值对,允许我们通过键来查找对应的值。而Object是所有...
在Java反射中,java.beans包特别用于处理属性(Property)、事件(Event)以及Bean的生命周期。 本文将重点讨论在Java反射中使用java.beans包学习的主要知识点: 1. **PropertyEditor**: `PropertyEditor`接口是...
通过这个实战项目,你可以深入理解Java反射、泛型和注解的用法,并且了解到如何利用它们构建一个基本的依赖注入系统,这将有助于你更好地理解和使用Spring框架。同时,这样的实践也有助于提升你的编程技能,使你能够...