小编Pau*_*jan的帖子

MapStruct @Mapping(表达式=“java(...)”)

是否可以在表达式中包含 if-else 或三元运算符之类的条件

@Mapping(expression="java(...)")
Run Code Online (Sandbox Code Playgroud)

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

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

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

@Mapping(expression = "java(MyObjectDetailMapper.getLastOne(myObject).getNumber())", target = "number"),
    
Run Code Online (Sandbox Code Playgroud)

java mapping expression mapstruct

5
推荐指数
1
解决办法
4万
查看次数

标签 统计

expression ×1

java ×1

mapping ×1

mapstruct ×1