java 对象转map

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;



public class ObjUtil {
    private static final Logger logger = LoggerFactory.getLogger(ObjUtil.class);

    public static Map<String,String> obj2Map(Object obj){
        Map<String,String> map =new HashMap<String, String>();
        Field[] fields = obj.getClass().getDeclaredFields();
        for(int i = 0;i < fields.length;i++){
            String varName = fields[i].getName();
            try{
                boolean accessFlag = fields[i].isAccessible();
                fields[i].setAccessible(true);
                Object o = fields[i].get(obj);
                if(o != null){
                    map.put(varName, o.toString());
                }
                fields[i].setAccessible(accessFlag);
            }catch(IllegalArgumentException ex){
                logger.error("obj2Map err!", ex);
            }catch(IllegalAccessException ex){
                logger.error("obj2Map err!",ex);
            }
        }
        return map;
    }

    public static Object map2Obj(Map<String,String> map, Class<?> beanClass){
        if(map == null || map.isEmpty()){
            return null;
        }
        Object obj = null;
        try{
            obj = beanClass.newInstance();
            Field[] fields = obj.getClass().getDeclaredFields();
            for(Field field : fields){
                int mod = field.getModifiers();
                if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
                    continue;
                }
                field.setAccessible(true);
                field.set(obj, map.get(field.getName()));
            }
        }catch(Exception e){
            logger.error("map2Obj err!", e);
        }
        return obj;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_31443653/article/details/80408160
今日推荐