我正在维护某种树。通用树节点具有以下形式:
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; { [设置返回值的操作] })
这就是我要找的。 p>