code: public static <T> T mapToBean(Class<T> cls, Map map) throws JibuException {
          try {
              T bean = cls.newInstance();
              BeanInfo beanInfo = Introspector.getBeanInfo(cls);
              PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
  
              for( PropertyDescriptor pd : pds ){
                  Object obj = map.get(pd.getName());
                  // 如果map中有相同的属性名
                  if( null != obj ) {
                      Class type = pd.getPropertyType();
                      Object value = getBeanValue(type, obj);
                      if (null != value ) {
                          pd.getWriteMethod().invoke(bean,value);
                      }
                  }
              }
              return bean;
          } catch (Exception e) {
              throw new JibuException(e.getMessage());
          }
      }
docs: 通过 Map 对Javabean 进行实例化并赋值。
  <p>
  Map 对象的格式必须为 key/value 。如果 map 中的 key 与 javabean
  中的属性名称一致，并且值可以被转化，则进行赋值。</p>
  <p>
  Map 中的 value 不能为数组类型，也就是说不能用
  request.getParameterValues() 来获取 value。</p>
  
  @param <T> 必须给定 bean 的 class 类型
  @param cls 被处理 bean 的 Class
  @param map 由 bean 属性名做 key 的 Map
  @return 实例化，并赋值完成的 Bean
  
  @exception JibuException 转化失败时抛出