You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MapStruct:仅当源字段非空时为目标字段设置常量值的方法

更简洁的MapStruct实现方案

针对你提出的「仅在源字段非null时将目标字段设为常量」的需求,确实有更简洁的实现方式,无需额外编写qualifiedByName对应的映射方法:

直接使用@Mapping的expression属性,通过Java表达式完成null判断与常量赋值:

@Mapping(target = "targetField", expression = "java(sourceField != null ? YourConstantClass.CONSTANT : null)")

说明

  • 该方式直接在映射注解中嵌入逻辑,生成的代码会自动判断sourceField是否为null,非null时赋值指定常量,否则返回null(符合MapStruct默认的null不覆盖行为)
  • 注意替换YourConstantClass.CONSTANT为你实际的常量类和常量名称,如果常量定义在当前映射接口中,可直接使用常量名

内容的提问来源于stack exchange,提问作者Benjamin Zach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:50:42