通用列表的推土机映射

| 我有一个像这样的ListWrapper
public class ListWrapper<T> {

private List<T> entries = new ArrayList<T>();

public List<T> getEntries() {
    return entries;
}

public void setEntries(List<T> entries) {
    this.entries = entries;
}
还有像豆
public class AccountBo {
    private String accountName;

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

}
还有另一个豆子
public class AccountDto {
    private String accountName;

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }    
}
现在的想法是使用AccountBo类型的bean填充列表,并使用Dozer映射列表,然后使用AccountDto Beans填充。
    AccountBo accountA = new AccountBo();
    accountA.setAccountName(\"Person A\");        
    AccountBo accountB = new AccountBo();
    accountB.setAccountName(\"Person B\");

    ListWrapper<AccountBo> listWrapperBo = new ListWrapper();

    listWrapperBo.getEntries().add(accountA);
    listWrapperBo.getEntries().add(accountB);

    ListWrapper<AccountDto> dtoList = EntityMapper.getInstance().map(listWrapperBo, ListWrapper.class);

    List<AccountDto> listDto = dtoList.getEntries();
但是-目标列表中的Bean类型为AccountBo...。 我该如何获取AccountDto的列表?     
已邀请:
我建议为此使用ModelMapper而不是Dozer。 最简单的解决方案是创建一个包含AccountDto的ListWrapper的子类:
public class DtoListWrapper extends ListWrapper<AccountDto> {
}
然后,当您映射时,ModelMapper将知道需要将包含AccountBOs的ListWrapper转换为包含AccountDtos的ListWrapper。
ModelMapper modelMapper = new ModelMapper();
ListWrapper<AccountDto> listWrapper = modelMapper.map(listWrapperBo, DtoListWrapper.class);
而已!有关更多示例和文档,请访问ModelMapper网站: http://modelmapper.org     

要回复问题请先登录注册