簡體   English   中英

Orika - 列表到列表的轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM