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;  
      
        }  
  • 相关阅读:
    计算机网络技术-IOS和VRP 学习笔记
    计算机网络技术-OSI和TCP/IP学习笔记
    软件安装-Typora安装
    python 根据车牌信息,分析出各省的车牌持有量
    python 判断一个三位数是不是水仙花数
    python基础 day7 基础数据类型补充、编码的进一步认识
    浅谈对深浅copy的个人理解(小白的理解,轻喷)
    python基础 day6 id和is、代码块、集合、深浅拷贝
    python基础 day5 字典
    python基础 day4 列表、元组、range
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/5647716.html
Copyright © 2011-2022 走看看