`

通过java反射实现map与bean之间互转

    博客分类:
  • java
阅读更多

最近写接口规范时,规定用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;
	}
}

 

3
1
分享到:
评论

相关推荐

    java bean和map之间的互转

    在Java编程中,Java Bean和Map是两种常用的...总的来说,Java Bean和Map之间的互转在Java开发中非常常见,尤其是在数据交换和视图渲染时。理解并掌握这两种数据结构的转换技巧,有助于提升开发效率和代码的可维护性。

    java Map转换成bean,利用java反射以及java和bean包

    在Map到Bean的转换中,我们通常会寻找Map中的键与Bean的属性名相对应,然后通过反射调用setter方法来设置属性值。 具体到Java Map转换成Bean的过程,以下是一个简单的示例: ```java public class BeanUtils { ...

    Map和Bean灵活转换工具类

    总结来说,`MapUtils`和`BeanUtils`是Java开发中处理数据转换的重要工具,它们极大地简化了Map与Bean之间的转换操作,提高了代码的可读性和可维护性。了解和熟练运用这些工具类,能够使我们的开发工作更加高效。在...

    Java Bean对象和Map相互转换.zip

    在Java编程中,Java Bean对象和Map之间的转换是常见的数据操作。这主要涉及到对象属性与键值对之间的映射,方便数据的存储、传递和处理。在这个主题中,我们将深入探讨如何使用Fastjson和BeanMap两个库来实现这种...

    策略模式的实现,通过反射

    本示例将详细介绍如何通过两种方法实现策略模式:一种是通过Map存储方式,另一种是通过配置文件加反射方式。 首先,我们理解策略模式的基本结构。策略模式包含三个主要角色:策略接口(Context)、具体策略类...

    java实现Object和Map之间的转换3种方式

    使用 Java 反射机制可以实现 Object 和 Map 之间的转换。可以使用 Field 对象来访问 Object 的成员变量,并将其转换为 Map 对象。同时,使用反射机制也可以将 Map 对象转换为 Object 对象。 ```java public Map, ...

    Java代码实现Map和Object互转及Map和Json互转

    总结一下,Map和Object互转以及Map和JSON互转是Java Web开发中常见的需求。前者可以通过反射、Apache Commons BeanUtils或者Introspector类来实现,而后者则可以使用专门的JSON处理库如Gson、Jackson或Fastjson。...

    基于Java反射的map自动装配JavaBean工具类设计示例代码

    描述 :"主要给大家介绍了关于基于Java反射的map自动装配JavaBean工具类设计的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起看看吧" ...

    map与Javabean相互转换实例

    总结起来,`Map`和`JavaBean`的相互转换在Java开发中是常见需求,通过反射机制可以高效地实现这一功能。在处理大量数据转换时,自定义的转换工具类如`collectionUtils`能够极大提升开发效率,使代码更加简洁和易懂。...

    java中实现map与对象相互转换的几种实现

    Java中实现Map与对象相互转换是许多开发者经常遇到的问题,本文将介绍五种实现Map与对象相互转换的方法,每种方法都将通过示例代码进行详细的介绍。 方法一:使用org.apache.commons.beanutils转换 该方法使用org....

    各种转换,xml,实体bean,动态bean,map等

    在Java中,我们可以使用JAXB(Java Architecture for XML Binding)进行XML与Java对象之间的双向绑定,或者使用DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等API来...

    深度转换Bean<->Bean的Mapper

    理解其工作原理和源码有助于我们更有效地使用这个工具,同时也能提升对Java反射和类型转换的理解。通过深入阅读给出的博文链接,开发者可以进一步掌握如何在实际项目中利用BeanMapper优化代码,提高代码的可维护性和...

    java map转实体

    java map转实体可以利用java的反射去封装,于是就在hibernate的工具类下试着封装了下,封装完了之后感觉没必要,这完全就可以提取出来变成一个独立的工具类,而不仅仅局限于hibernate了,这样既可以满足一个hql查询...

    json与java对象互转

    ### JSON与Java对象互转:深入理解与实践 在现代软件开发中,JSON(JavaScript Object Notation)作为数据交换的标准格式之一,其轻量级、易于读写的特点使其成为跨平台数据传输的首选。Java作为一种广泛使用的编程...

    JAVA动态对象装配实现 测试--初步实现bean的set/get功能

    通过`DYNC_Object.java`的示例,我们可以学习如何利用反射来实现bean的`set`和`get`操作,这为我们提供了更大的程序设计自由度,使得代码能够适应不断变化的需求。理解并熟练掌握这一技术,对于提升Java开发能力非常...

    java Map转Object与Object转Map实现代码

    本文将详细介绍如何实现Java中的Map转Object与Object转Map,并提供相关的代码示例。 1. **Map转Object** Map转Object主要是将Map中的键值对填充到一个指定类型的对象中,这里我们以一个名为`User`的实体类为例。...

    Map 转为Object Object 转为 Map java jdk1.4以上

    本文将详细介绍如何使用Java反射来实现Map到Object以及Object到Map的转换。 首先,让我们理解Map和Object的基本概念。Map接口是Java集合框架的一部分,它存储键值对,允许我们通过键来查找对应的值。而Object是所有...

    Java反射中java.beans包学习总结.docx

    在Java反射中,java.beans包特别用于处理属性(Property)、事件(Event)以及Bean的生命周期。 本文将重点讨论在Java反射中使用java.beans包学习的主要知识点: 1. **PropertyEditor**: `PropertyEditor`接口是...

    Java反射、泛型和注解实战之Spring核心注入IOC的实现

    通过这个实战项目,你可以深入理解Java反射、泛型和注解的用法,并且了解到如何利用它们构建一个基本的依赖注入系统,这将有助于你更好地理解和使用Spring框架。同时,这样的实践也有助于提升你的编程技能,使你能够...

Global site tag (gtag.js) - Google Analytics