Java ModelMapper多级嵌套集合映射覆盖(有和没有lambda表达式)

时间:2018-02-05 11:59:24

标签: java lambda modelmapper

我正在维护某种树。通用树节点具有以下形式:

public class Node {
    private String s;
    private ReadWriteLock sLock;  //read on.
    private List<Node> descendants;
    private ReadWriteLock descLock;  //read on.
}

我试图将它映射到具有大致相同结构的NodeDTO类,除了嵌套集合的类型也是List:

public class NodeDTO {
    private String s;
    private List<NodeDTO> descendants;
}

ModelMapper library提供了一种默认的map(src-obj, dest-class)方法,适用于许多用例。但是,考虑到竞争条件的风险,我想覆盖映射函数以在映射操作期间获取和释放锁。

  • 主要问题:如果我编写自定义PropertyMap,我应该将自己的所有级别映射到叶子(因为每个后代节点可能有自己的后代),或者只需返回一个列表映射第一级后代,同时将该列表中每个元素的后代节点设置为空列表,库将完成剩下的工作吗? (即使没有lambda表达式。这是我最感兴趣的一点)
  • 次要问题(如果没有回答则不是问题):documentation读取可以使用lambda表达式覆盖映射。但是,我还没有能够生成以下形式的工作代码:

    map(src-&gt; { [lock - read value - unlock] / return value;},(dest,retVal) - &gt; { [设置返回值的操作] })

    这就是我要找的。

0 个答案:

没有答案