1 public class BeanMapper { 2 3 /** 4 * 持有Dozer單例, 避免重復創建DozerMapper消耗資源. 5 */ 6 private static DozerBeanMapper dozer = new DozerBeanMapper(); 7 8 /** 9 * 基於Dozer轉換對象的類型. 10 */ 11 public static <T> T map(Object source, Class<T> destinationClass) { 12 return dozer.map(source, destinationClass); 13 } 14 15 /** 16 * 基於Dozer轉換Collection中對象的類型. 17 */ 18 public static <T> List<T> mapList(Collection sourceList, Class<T> destinationClass) { 19 List<T> destinationList = Lists.newArrayList(); 20 for (Object sourceObject : sourceList) { 21 T destinationObject = dozer.map(sourceObject, destinationClass); 22 destinationList.add(destinationObject); 23 } 24 return destinationList; 25 } 26 27 /** 28 * 基於Dozer將對象A的值拷貝到對象B中. 29 */ 30 public static void copy(Object source, Object destinationObject) { 31 dozer.map(source, destinationObject); 32 } 33 }
//清晰版 import java.util.Collection; import java.util.List; import org.dozer.DozerBeanMapper; import com.google.common.collect.Lists; public class BeanMapper { private static DozerBeanMapper dozer = new DozerBeanMapper(); 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<T> destinationList = Lists.newArrayList(); for (Object sourceObject : sourceList) { T destinationObject = dozer.map(sourceObject, destinationClass); destinationList.add(destinationObject); } return destinationList; } public static void copy(Object source, Object destinationObject) { dozer.map(source, destinationObject); } }