list - 通用列表的推土机映射

标签 list generics mapping dozer

我有一个 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;
}

和一颗 bean
public class AccountBo {
    private String accountName;

    public String getAccountName() {
        return accountName;
    }

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

}

和另一个 bean 一样
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而不是为此而使用推土机。

最简单的解决方案是创建一个包含 AccountDto 的 ListWrapper 子类:

public class DtoListWrapper extends ListWrapper<AccountDto> {
}

那么当你去map的时候,ModelMapper就会知道包含AccountBOs的ListWrapper需要转换成包含AccountDtos的ListWrapper。
ModelMapper modelMapper = new ModelMapper();
ListWrapper<AccountDto> listWrapper = modelMapper.map(listWrapperBo, DtoListWrapper.class);

就是这样!有关更多示例和文档,请查看 ModelMapper 站点:

http://modelmapper.org

关于list - 通用列表的推土机映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123759/

相关文章:

html - 下拉列表中的模式不起作用

python - 匹配 Pandas 列列表中的单词并分配分数

python - 计算Python中列表列表中列表的出现次数

c# - 如何将 List<String> 的内容分配给 RichTextBox?

Swift 编译器无法解析泛型函数中数组的 + 运算符的正确重载

java - 我是否需要传单 map 源代码才能在 HTML 中使用?

java - 数组中每个位置的链表

java - 在 Java 中迭代任何类型的泛型数组

php - 匹配半径内的经度和纬度

mapping - 使用 Automapper 忽略具有默认值的映射属性