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

Mapstruct使用qualifiedByName时出现NullPointerException问题排查求助

Mapstruct转换触发NullPointerException的原因
  • 直接触发点:你定义的dataToBase64方法没有处理入参为null的情况。当loadedImage.data或resultImage.data为null(甚至loadedImage/resultImage本身就是null时,链式调用得到的data也会是null),直接调用JDK的Base64.getEncoder().encodeToString(data)会触发空指针——因为该方法内部会尝试读取数组长度,而null数组没有长度属性。

  • Mapstruct的行为逻辑:Mapstruct默认不会对自定义转换器的入参做null拦截,只要源字段路径解析后的值是null,就会直接将null传递给标注了@Named的转换器方法,不会自动跳过或处理null场景。

  • 触发场景:出现该错误时,传入转换方法的Task对象必然存在以下情况之一:

    • loadedImage为null,导致loadedImage.data取到null
    • loadedImage不为null,但loadedImage.data为null
    • resultImage为null,导致resultImage.data取到null
    • resultImage不为null,但resultImage.data为null

内容的提问来源于stack exchange,提问作者Tachank.a

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:35:11