zoukankan      html  css  js  c++  java
  • 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;  
      
        }  
  • 相关阅读:
    strcmp()比较函数和strcasecmp()和strnatcmp()
    substr()函数
    改变字符串中的字母大小写
    explode()与相反函数 implode() 和join()
    PHP nl2br() 函数
    PHP trim() 函数
    PHP的count(数组)和strlen(字符串)的内部实现
    变量处理函数库
    php中定义数组的方法
    80端口的烦恼:[3]清除NT Kernel占用80端口
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/5647716.html
Copyright © 2011-2022 走看看