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
相关产品推荐
相关产品推荐

