DozerBeanMapper + 对象转Map方法
来源:互联网 发布:pptv网络电视 编辑:程序博客网 时间:2024/06/04 08:55
1、简介
dozer是一种JavaBean的映射工具,类似于apache的BeanUtils。但是dozer更强大,它可以灵活的处理复杂类型之间的映射。不但可以进行简单的属性映射、复杂的类型映射、双向映射、递归映射等,并且可以通过XML配置文件进行灵活的配置。
2、准备
现在开始就小试一下。
首先,需要下载jar包,
dozer.jar :http://dozer.sourceforge.net/downloading.html
还需要slf4j.jar,commons-lang.jar,commons-beanutil.jar, commons-loggin.jar
http://lishaorui.iteye.com/blog/1151513
import com.google.common.collect.Lists;import java.util.Collection;import java.util.Iterator;import java.util.List;import org.dozer.DozerBeanMapper;public class BeanMapper{ private static DozerBeanMapper dozer = new DozerBeanMapper(); /** * 构造新的destinationClass实例对象,通过source对象中的字段内容 * 映射到destinationClass实例对象中,并返回新的destinationClass实例对象。 * * @param source 源数据对象 * @param destinationClass 要构造新的实例对象Class */ public static <T> T map(Object source, Class<T> destinationClass) { return dozer.map(source, destinationClass); } public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass) { List destinationList = Lists.newArrayList(); for (Iterator i$ = sourceList.iterator(); i$.hasNext(); ) { Object sourceObject = i$.next(); Object destinationObject = dozer.map(sourceObject, destinationClass); destinationList.add(destinationObject); } return destinationList; } /** * 将对象source的所有属性值拷贝到对象destination中. * * @param source 对象source * @param destination 对象destination */ public static void copy(Object source, Object destinationObject) { dozer.map(source, destinationObject); }}
使用:
SmIaasQuotaV result = null;try {result = limitService.getLimitDetails(id,parentId);if(result != null){response.setData(BeanMapper.map(result, Map.class));response.setSuccess(true);}}
BeanMapper.map(result, Map.class)
转换为Map对象。
public static <T> Map<String, T> toMap(Object target) {return toMap(target,false);}/** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * * @return Map */public static <T> Map<String, T> toMap(Object target,boolean ignoreParent) {return toMap(target,ignoreParent,false);}/** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * @param ignoreEmptyValue 是否不把空值添加到Map中 * * @return Map */public static <T> Map<String, T> toMap(Object target,boolean ignoreParent,boolean ignoreEmptyValue) {return toMap(target,ignoreParent,ignoreEmptyValue,new String[0]);}/** * 将目标对象的所有属性转换成Map对象 * * @param target 目标对象 * @param ignoreParent 是否忽略父类的属性 * @param ignoreEmptyValue 是否不把空值添加到Map中 * @param ignoreProperties 不需要添加到Map的属性名 */ public static <T> Map<String, T> toMap(Object target,boolean ignoreParent,boolean ignoreEmptyValue,String... ignoreProperties) { Map<String, T> map = new HashMap<String, T>(); List<Field> fields = ReflectionUtils.getAccessibleFields(target.getClass(), ignoreParent);for (Iterator<Field> it = fields.iterator(); it.hasNext();) {Field field = it.next();T value = null;try {value = (T) field.get(target);} catch (Exception e) {e.printStackTrace();}if (ignoreEmptyValue&& ((value == null || value.toString().equals(""))|| (value instanceof Collection && ((Collection<?>) value).isEmpty())|| (value instanceof Map && ((Map<?,?>)value).isEmpty()))) {continue;}boolean flag = true;String key = field.getName();for (String ignoreProperty:ignoreProperties) {if (key.equals(ignoreProperty)) {flag = false;break;}}if (flag) {map.put(key, value);}} return map; }
0 0
- DozerBeanMapper + 对象转Map方法
- DozerBeanMapper对象之间相同属性名赋值
- DozerBeanMapper对象之间相同属性名赋值
- 遍历Map对象的方法
- 集合-Map概述-Map子类对象特点-Map共性方法
- java 对象转map,map转对象
- map对象转实体对象
- map转对象
- JavaBean对象转map
- map转对象
- java map转对象
- java 对象转map
- java对象转map
- json对象转map方法之一,通过遍历json对象的所有key,取出value放入map
- Java map(1)---遍历Map对象的4种方法
- java 遍历Map对象的方法
- Java中遍历Map对象的方法
- JQ jQ对象的map方法
- tree
- chmod 修改权限
- Maven命令
- java concurrentHashMap 源码解析
- 返回值DataResponse
- DozerBeanMapper + 对象转Map方法
- Python函数参数类型*、**的区别
- Spring Data JPA
- ant工具使用
- 基本文本编辑diff,cut,grep sed,awk
- Ubuntu下安装mysql及中文乱码解决
- Maven开发多模块项目
- dependencyManagementy与dependencies的区别
- Maven Dependency Scope