• transfer between javabean and map


    1. java bean 转化成 map

    import java.beans.BeanInfo;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.Map;
    
    public class BeanToMap {
    
        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;  
        }  
        
    }

    2. map transfer javabean

      2.1 (使用工具类BeanUtils)

    import org.apache.commons.beanutils.BeanUtils
    
    
    public static void transMap2Bean(Object obj, Map map){
            if(obj==null || map==null){
                return ;
            }
            try {
                BeanUtils.populate(obj, map);
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

      2.2 利用java内省

    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;  
      
        }  
  • 相关阅读:
    [YTU]_2917(Shape系列-3)
    c3p0-0.9.2.1.bin用于jdbc链接池
    C#加密解密DES字符串<转>
    Bechmarksql
    PHP中foreach有关引用的问题
    jqgrid 原理2
    jqggrid原理2
    jqgrid1原理
    JQgrid 入门
    搞开发真的是 坑太多了,
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/5647716.html
Copyright © 2020-2023  润新知