【问题标题】:MapStruct @Mapping(expression="java(...)")MapStruct @Mapping(表达式="java(...)")
【发布时间】:2020-10-17 04:32:39
【问题描述】:

是否可以在内部有条件,如 if-else 或三元运算符

@Mapping(expression="java(...)")

我有一个返回 ArrayList 的最后一项的方法,但如果列表为空,它会返回 null。我需要一个条件,所以如果我收到了我可以使用的项目,或者如果它为 null,它将映射为 null。

public static MyObjectDetail getLastOne(MyObject myObject) {
    List<MyObjectDetail> details = myObject.getMyObjectDetails();
    if(details.isEmpty()) {
        return null;
    } else {
        return myObject.getLastDetail(myObject);
    }
}

这是我目前使用的@Mapping,如果列表不为空,它可以正常工作。

@Mapping(expression = "java(MyObjectDetailMapper.getLastOne(myObject).getNumber())", target = "number"),
    

【问题讨论】:

    标签: java mapping expression mapstruct


    【解决方案1】:

    解决方案:

    @Mapping(expression = "java(null == MyObjectDetailMapper.getLastOne(myObject) ? null : MyObjectDetailMapper.getLastOne(myObject).getNumber())", target = "number"),
        
    

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多