首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapStruct @Mapping(expression="java(...)")

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

Stack Overflow用户
提问于 2020-06-26 22:31:58
回答 1查看 7.4K关注 0票数 1

内部是否可以有一个类似if-else或三元运算符的条件?

代码语言:javascript
复制
@Mapping(expression="java(...)")

我有一个返回ArrayList的最后一项的方法,但是如果列表为空,它将返回null。我需要一个条件,以便在收到项的情况下可以使用它,或者在项为空的情况下映射为空。

代码语言:javascript
复制
public static MyObjectDetail getLastOne(MyObject myObject) {
    List<MyObjectDetail> details = myObject.getMyObjectDetails();
    if(details.isEmpty()) {
        return null;
    } else {
        return myObject.getLastDetail(myObject);
    }
}

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

代码语言:javascript
复制
@Mapping(expression = "java(MyObjectDetailMapper.getLastOne(myObject).getNumber())", target = "number"),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-30 20:20:05

解决方案:

代码语言:javascript
复制
@Mapping(expression = "java(null == MyObjectDetailMapper.getLastOne(myObject) ? null : MyObjectDetailMapper.getLastOne(myObject).getNumber())", target = "number"),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62597010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档