Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,496,113字

该文章投稿至Nemo社区   Java  板块 复制链接


BeanUtils

发布于 2016/06/28 08:58 1,563浏览 0回复 4,390

package com.nemo.web.modules.map.utils;  
import
org.apache.commons.beanutils.BeanUtils;
import
org.apache.commons.collections.map.HashedMap;
import
java.beans.BeanInfo;
import
java.beans.Introspector;
import
java.beans.PropertyDescriptor;
import
java.lang.reflect.Method;
import
java.util.Map;

/**
* Created by nemo on 16-6-23. * Bean 操作类 */
public class
BeanUtil {

/**
 
* // Map --> Bean 2: 利用org.apache.commons.beanutils 工具类实现 Map --> Bean
 
* @param map
 
* @param obj
 
* @return
 
*/
public static Object transMap2Bean2(Map, Object> map, Object obj) {
             if (map == null || obj == null) {
                 return new Object();
             }

             try {
    BeanUtils.populate(obj, map);
 
         } catch (Exception e) { System.out.println("transMap2Bean2 Error " + e);
             
}
             return obj;
}

 /**
* Map --> Bean 1: 利用Introspector,PropertyDescriptor实现 Map --> Bean
* @param map
  
* @param obj
* @return
*/ public static Object transMap2Bean(Map, 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 obj;
 
}

 /**
* Bean --> Map 1: 利用IntrospectorPropertyDescriptor Bean --> Map
* @param obj
* @return
*/
 
public static Map, Object> transBean2Map(Object obj) {
     if(obj == null){
        return null;
     
} Map, Object> map = new HashedMap();
     
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;
    
} }
本文标签
 {{tag}}
点了个评