Java Map和Bean之前的转换
2015-08-20 20:48
519 查看
// Map --> Bean 2: 利用org.apache.commons.beanutils 工具类实现 Map --> Bean public static void transMap2Bean2(Map<String, Object> map, Object obj) { if (map == null || obj == null) { return; } try { BeanUtils.populate(obj, map); } catch (Exception e) { System.out.println("transMap2Bean2 Error " + e); } } // Map --> Bean 1: 利用Introspector,PropertyDescriptor实现 Map --> Bean public static void transMap2Bean(Map<String, Object> map, Object obj) { try { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); if (map.containsKey(key)) { Object value = map.get(key); // 得到property对应的setter方法 Method setter = property.getWriteMethod(); setter.invoke(obj, value); } } } catch (Exception e) { System.out.println("transMap2Bean Error " + e); } return; } // Bean --> Map 1: 利用Introspector和PropertyDescriptor 将Bean --> Map public static Map<String, Object> transBean2Map(Object obj) { if(obj == null){ return null; } Map<String, Object> map = new HashMap<String, Object>(); try { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); // 过滤class属性 if (!key.equals("class")) { // 得到property对应的getter方法 Method getter = property.getReadMethod(); Object value = getter.invoke(obj); map.put(key, value); } } } catch (Exception e) { System.out.println("transBean2Map Error " + e); } return map; }
本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1686654
相关文章推荐
- JAVA_SE基础——27.匿名对象
- Java中的内存泄露
- Spring 的MVC I18N-国际化相关配置
- java urlrewrite 使用
- java join的用法
- java synchronized详解
- Java 线程测试框架
- java synchronized详解
- spring揭秘 读书笔记 一 IoC初探
- spring揭秘 读书笔记 一 IoC初探
- Introduction to Java Programming编程题6.20<经典八皇后难题>
- 自我反思——关于java中String类型和int类型的转换
- 封装基础
- Spring Http Invoker使用简介
- java比较陌生的关键词
- java比较陌生的关键词
- eclipse下NDK断点失效(断不住)问题的解决方法
- JVM 并发性: Java 和 Scala 并发性基础
- 关于Java的10个谎言
- Java字符串的10大热点问题盘点