对象属性封装到map中
Posted gulp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象属性封装到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中的主要内容,如果未能解决你的问题,请参考以下文章
struts2获取表单数据之 属性封装 模型驱动 表达式封装 对象封装到list集合 对象封装到map集合 五种方便的封装方式
Android当中的MVP模式终篇---关于对MVP模式中代码臃肿
Android当中的MVP模式终篇---关于对MVP模式中代码臃肿