package com.piend.tongzhan.common; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; /** * Bean对象与Map相互转换 * * @author 唐超 * */ @SuppressWarnings("unchecked") public class JavaBean2Map { public static Map<String, Object> convertBean(Object bean) { Map<String, Object> map = new HashMap<String, Object>(); Field fields[] = bean.getClass().getDeclaredFields(); try { Field.setAccessible(fields, true); for (int i = 0; i < fields.length; i++) { map.put(fields[i].getName(), fields[i].get(bean)); } } catch (Exception e) { e.printStackTrace(); } return map; } public static Object convertMap(Class<?> type, Map<String, Object> map) { Object ob = null; try { if (map != null && map.size() > 0) { ob = type.newInstance(); Field fields[] = type.getDeclaredFields(); Field.setAccessible(fields, true); for (int i = 0; i < fields.length; i++) { if (map.containsKey(fields[i].getName())) { fields[i].set(ob, map.get(fields[i].getName())); } } } } catch (Exception e) { e.printStackTrace(); } return ob; } public static Map convertBean1(Object bean) throws IntrospectionException, IllegalAccessException, InvocationTargetException { Class type = bean.getClass(); Map returnMap = new HashMap(); BeanInfo beanInfo = Introspector.getBeanInfo(type); PropertyDescriptor[] propertyDescriptors = beanInfo .getPropertyDescriptors(); for (int i = 0; i < propertyDescriptors.length; i++) { PropertyDescriptor descriptor = propertyDescriptors[i]; String propertyName = descriptor.getName(); if (!propertyName.equals("class")) { Method readMethod = descriptor.getReadMethod(); Object result = readMethod.invoke(bean, new Object[0]); if (result != null) { returnMap.put(propertyName, result); } else { returnMap.put(propertyName, ""); } } } return returnMap; } public static Object convertMap1(Class type, Map map) throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException { BeanInfo beanInfo = Introspector.getBeanInfo(type); Object obj = type.newInstance(); PropertyDescriptor[] propertyDescriptors = beanInfo .getPropertyDescriptors(); for (int i = 0; i < propertyDescriptors.length; i++) { PropertyDescriptor descriptor = propertyDescriptors[i]; String propertyName = descriptor.getName(); if (map.containsKey(propertyName)) { Object value = map.get(propertyName); Object[] args = new Object[1]; args[0] = value; descriptor.getWriteMethod().invoke(obj, args); } } return obj; } }
相关推荐
使用Java反射机制,将给定的javaBean转化为Map数类型,以及将Map类型的数据转化为JavaBean
基本介绍使用反射将普通Javabean与map集合的相互转换实例,项目开发时编写自己的转换帮助类,更好满足开发时所需
主要介绍了Javabean和map相互转化方法示例,介绍了其通用方法代码,需要的朋友可以参考下。
将list<Map>转换成JavaBean的工具类
将JavaBean对象与Json字符串相互转换,将Java集合与Json字符串集合相互转换。
json与JavaBean、Map和list之间的转换问题
Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;
javabean_map_string和json互转详细文档+例子
此方法可以实现javabean,map,json的自由转换,方便大家的的操作
实现javabean转换xml,以及xml转换javabean,,尤其是做数据对接时,使用webservice时,很方便
对象与map互相转换工具类
直接实现Bean转换为Map,方便快捷,粘贴即用
xml文件与javabean之间的转换,javabean生成xml文件,再将xml文件转换成javabean,输出到控制台上
小测试,将JavaBean与JsonString的相互转换。
将一个Map中的数据封装到javaBean中
xml与JavaBean互相转换的好工具---Xstream,能够很方便的实现xml与JavaBean之间的转换,这在系统之间进行信息交互是非常方便的
excel-bean 主要功能是 JavaBean 与 Excel 数据行之间的互相转换,普通项目中都会有Excel的导入导出功能,使用该工具可以大大提高工作效率,使开发者不必关系复杂的Excel解析。 主要解决 Excel 行类型数据与 ...
xml与javabean之间的相互转换,很方便,可快速入门,导入MyEclipse即可使用
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List<Map, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List<Map, Object>>转化为...
用JOX实现xml和javabean的相互转换