当前位置 : 主页 > 编程语言 > java >

map 与bean的互相转换

来源:互联网 收集:自由互联 发布时间:2021-06-28
map 与bean的互相转换 /** * 把javaBean对象转换为Map键值对 * * @param bean * @return * @throws Exception */ private HashMap transforObjectToMap(Object bean) throws Exception { Class type = bean.getClass(); HashMap returnMap = n
map 与bean的互相转换
/**
     * 把javaBean对象转换为Map键值对
     *
     * @param bean
     * @return
     * @throws Exception
     */
    private HashMap  transforObjectToMap(Object bean) throws Exception {
        Class
  type = bean.getClass();
        HashMap  returnMap = new HashMap
 
  ();
        BeanInfo 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 = readMethod.invoke(bean, new Object[0]);
                if (result != null) {
                    returnMap.put(propertyName, result);
                }
            }
        }
        return returnMap;
    }
 
bean与 map 的互相转换
private Object transforMapToObject(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);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return obj;
    }
 
上一篇:HTTP工具类
下一篇:生成文件名字
网友评论