相关疑难解决方法(0)

MapStruct:如何将输入对象传递给表达式?

在 MapStruct 版本 1.1.0.Final 中,这是可能的....

@Mappings({
    @Mapping(target = "transaction.process.details", expression = "java(MappingHelper.mapDetails(request))"),
     //more mappings
})
Response requestToResponse(Request request);
Run Code Online (Sandbox Code Playgroud)

这是可能的,因为该mapDetails方法是(巧合?)生成到requestToResponse方法中的。这就是为什么request不为空的原因。

现在,由于 1.1.0.Final 不适用于 Lombok,我不得不升级到 1.2.0.CR2。在这个版本中,mapDetails将生成到一个单独的方法中,request没有传递,所以request现在在这个方法中为空,我得到了一个带有表达式的 NPE。(这是现在的子子方法requestToResponse。)

我是否误用了这个表达式,所以它只是巧合,还是新版本有错误?如果没有错误,我该如何request正确地将实例传递给表达式?

mapstruct

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

mapstruct ×1