[英]Orika - list to list conversion
這可能很簡單,但我在文檔中找不到它。 我有一個人課
class BasicPerson {
private String name;
private int age;
private Date birthDate;
// getters/setters omitted
}
和它的清單
ArrayList<Person>
我想改變它們來改變它們
ArrayList<PersonDTO>
但沒有顯式循環。 有沒有辦法將 MapperFacade.map 用於列表以列出一行轉換?
它內置了此功能。 您是否嘗試使用該方法
List<D> ma.glasnost.orika.impl.ConfigurableMapper.mapAsList(Iterable<S> source, Class<D> destinationClass)
?
我試圖找到 Javadoc 的更新版本,但這里是 1.3.5 之一。 當前版本是 1.4.5。 MapperFacade 類
如果使用MapperFacade
接口,Orika 可以對集合執行多次映射:
final MapperFacade mapperFacade = mapperFactory.getMapperFacade();
final List<Person> people = // Get the person instances
final List<PersonDto> personDtos = mapperFacade.mapAsList(people, PersonDto.class);
另一方面,如果您使用BoundMapperFacade
接口,則它不包含這種方便的方法。
最后,如果您選擇使用ConfigurableMapper
方法,它還包括一個mapAsList
方法,該方法實際上委托給MapperFacade.mapAsList
方法。
package com.miya.takeaway.common.util.orika;
import com.miya.takeaway.common.util.orika.converter.ConverterHelper;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.converter.ConverterFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;
import ma.glasnost.orika.metadata.ClassMapBuilder;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Collections;
import java.util.List;
public class OrikaUtils {
private static MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
public static <T> List<T> map(List<?> objects, Class<T> target) {
if (CollectionUtils.isEmpty(objects)) {
return Collections.EMPTY_LIST;
}
return mapperFactory.getMapperFacade().mapAsList(objects.toArray(), target);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.