我正在维护某种树。通用树节点具有以下形式:
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库提供了一种默认map(src-obj, dest-class)
方法,适用于许多用例。但是,考虑到竞争条件的风险,我想重写映射函数以在映射操作期间获取和释放锁。
- 主要问题:如果我写一个 custom
PropertyMap
,我应该自己将所有级别映射到叶子(因为每个后代节点可能有自己的后代),还是返回一个映射第一级后代的列表就足够了将该列表中每个元素的后代节点设置为一个空列表,然后库将完成剩下的工作?(即使没有 lambda 表达式。这是我最感兴趣的一点) 第二个问题(如果没有回答,则不是问题):文档显示可以使用 lambda 表达式来覆盖映射。但是,我无法生成以下形式的工作代码:
map(src-> { [lock - read value - unlock] / return value;}, (dest, retVal) -> { [操作设置返回值] })
这就是我要找的。