• javabean与map互转


     /**
         * 将一个 JavaBean 对象转化为一个  Map
         * @param bean 要转化的JavaBean 对象
         * @return 转化出来的  Map 对象
      * @throws Exception
         */

        public static Map convertBean(Object bean){
          Map returnMap = new HashMap();
         if(bean==null){
          return returnMap;
         }
            Class type = bean.getClass();
          
            BeanInfo beanInfo;
      try {
       beanInfo = Introspector.getBeanInfo(type);
       PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();
            
             for (int i = 0; i< propertyDescriptors.length; i++) {
                 PropertyDescriptor descriptor = propertyDescriptors[i];
                 String propertyName = descriptor.getName();
                 if (!propertyName.equals("class")) {
                     Method readMethod = descriptor.getReadMethod();
                     Object result = null;
         try {
          result = readMethod.invoke(bean, new Object[0]);
         } catch (Exception e) {
          //DevLog.error(type.getName() + "转换成Map出错,方法:" + readMethod.getName(), e);
         }
                     if (result != null) {
                         returnMap.put(propertyName, result);
                     } else {
                         returnMap.put(propertyName, "");
                     }
                 }
             }
      } catch (IntrospectionException e1) {
       DevLog.error(type.getName() + "转换成Map出错:", e1);
      }
           
            return returnMap;
        }

       /**
         * 将一个 Map 对象转化为一个 JavaBean
         * @param type 要转化的类型
         * @param map 包含属性值的 map
         * @return 转化出来的 JavaBean 对象
         * @throws Exception
         */

       public static Object convertMap(Class type, Map map) throws Exception {                 BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性             Object obj = type.newInstance(); // 创建 JavaBean 对象

            // 给 JavaBean 对象的属性赋值         PropertyDescriptor[] propertyDescriptors =  beanInfo.getPropertyDescriptors();         for (int i = 0; i< propertyDescriptors.length; i++) {             PropertyDescriptor descriptor = propertyDescriptors[i];             String propertyName = descriptor.getName();             if (map.containsKey(propertyName)) {                

          // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。                 Object value = map.get(propertyName);              

                   Object[] args = new Object[1];               

          args[0] = value;                

        descriptor.getWriteMethod().invoke(obj, args);           

      }        

    }         return obj;

        }

  • 相关阅读:
    峰Spring4学习(1)HelloWorld
    小峰mybatis(5)mybatis使用注解配置sql映射器--动态sql
    前端实现某一列不能重复不能且不能为空
    jquery:给正则表达式添加变量
    css:width height
    让heigh:100%起作用
    jquery:选择器 过滤器
    vs:如何添加.dll文件
    jq:正则表达式
    css:html() text() val()
  • 原文地址:https://www.cnblogs.com/songyunxinQQ529616136/p/6053847.html
Copyright © 2020-2023  润新知