首页 > 代码库 > 对象属性封装到map中
对象属性封装到map中
package cn.itsource.crm.utils;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.util.HashMap;import java.util.Map;import org.springframework.beans.BeanUtils;public class CommUtil { /** * 把指定的复杂对象属性,按照指定的内容,封装到新的map中 * @param source 目标对象 * @param ps 需要封装到map中的属性 * @return */ public static Map<String, Object> obj2map(Object source, String[] ps) { Map<String, Object> map = new HashMap<>(); if (source == null) return null; if (ps == null || ps.length < 1) { return null; } for (String p : ps) { PropertyDescriptor sourcePd = BeanUtils.getPropertyDescriptor( source.getClass(), p); if (sourcePd != null && sourcePd.getReadMethod() != null) { try { Method readMethod = sourcePd.getReadMethod(); if (!Modifier.isPublic(readMethod.getDeclaringClass() .getModifiers())) { readMethod.setAccessible(true); } Object value = readMethod.invoke(source, new Object[0]); map.put(p, value); } catch (Exception ex) { throw new RuntimeException( "Could not copy properties from source to target", ex); } } } return map; } }
对象属性封装到map中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。