将一个 JavaBean 对象转化为一个 Map

发布时间:2017-7-1 11:40:26编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"将一个 JavaBean 对象转化为一个 Map ",主要涉及到将一个 JavaBean 对象转化为一个 Map 方面的内容,对于将一个 JavaBean 对象转化为一个 Map 感兴趣的同学可以参考一下。

package com.loan.modules.common.util;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import jodd.util.StringUtil;import com.alibaba.fastjson.JSONObject;public class ObjectUtil {        /**      * 将一个 JavaBean 对象转化为一个  Map      * @param bean 要转化的JavaBean 对象      * @return 转化出来的  Map 对象      * @throws IntrospectionException 如果分析类属性失败      * @throws IllegalArgumentException      * @throws IllegalAccessException 如果实例化 JavaBean 失败      * @throws InvocationTargetException 如果调用属性的 setter 方法失败      */     public static Map<String,Object> convertBean(Object bean) throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {         Class type = bean.getClass();         Map<String,Object> returnMap = new HashMap<String,Object>();         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);                 } else {                     returnMap.put(propertyName, "");                 }             }         }         return returnMap;     }             /**      * 将一个 Map 对象转化为一个 JavaBean      * @param type 要转化的类型      * @param map 包含属性值的 map      * @return 转化出来的 JavaBean 对象      * @throws IntrospectionException      *             如果分析类属性失败      * @throws IllegalAccessException      *             如果实例化 JavaBean 失败      * @throws InstantiationException      *             如果实例化 JavaBean 失败      * @throws InvocationTargetException      *             如果调用属性的 setter 方法失败      */     public static Object convertMap(Class type, Map map)             throws IntrospectionException, IllegalAccessException,             InstantiationException, InvocationTargetException {         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;     }         /**     * 判断 实体类对象所有属性是否全部为空     * @param object 实体类对象      * @return     */    public static boolean judgeObjectIsEmpty(Object object){        if(object == null) return false;        JSONObject json = (JSONObject) JSONObject.toJSON(object);                  for(java.util.Map.Entry<String,Object> entry:json.entrySet()){                        if(entry.getValue() != null){                if(StringUtil.isNotBlank(entry.getValue().toString())){                                        return true;                }


上一篇:(一)问候 HttpClient
下一篇:C#中ToString()格式详解

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款