仅以基本类型为源使用MapStruct时编译报错问题排查
问题分析与解决方案
这是MapStruct 1.5.2.Final版本的已知Bug:当映射方法的入参全为基本数据类型(如int),且返回值是使用@Value注解的不可变类时,MapStruct错误地尝试生成null值检查逻辑,但基本类型不存在null的情况,最终生成了空的if () {}代码块,导致编译失败。
解决方法
方法一:升级MapStruct版本
将MapStruct依赖升级到1.5.3.Final或更高版本,该版本已经修复了这个基本类型映射的null检查错误。
方法二:手动实现映射逻辑(不升级版本时)
在CompanyMapper接口中添加default方法,手动完成对象创建,绕过MapStruct的自动生成逻辑:
@Mapper public interface CompanyMapper { default CompanyDto mapToDto(int id, int accountId) { return new CompanyDto(id, accountId); } }
内容的提问来源于stack exchange,提问作者Zhenyria
相关产品推荐
相关产品推荐

