Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mapstruct和Lombok升级会导致不同的初始化行为_Java_Spring_Spring Boot_Lombok_Mapstruct - Fatal编程技术网

Java Mapstruct和Lombok升级会导致不同的初始化行为

Java Mapstruct和Lombok升级会导致不同的初始化行为,java,spring,spring-boot,lombok,mapstruct,Java,Spring,Spring Boot,Lombok,Mapstruct,我最近将Lombok从1.16.22升级到1.18.20,将Spring boot从2.1.13升级到2.2.13,将Mapstruct从1.2.0升级到1.4.2,并开始看到这种奇怪的行为 @Setter @NoArgsConstructor @AllArgsConstructor @Builder public class Basket { ... private List<Discount> discounts = new ArrayList<>(

我最近将Lombok从1.16.22升级到1.18.20,将Spring boot从2.1.13升级到2.2.13,将Mapstruct从1.2.0升级到1.4.2,并开始看到这种奇怪的行为

@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Basket {

    ...
    private List<Discount> discounts = new ArrayList<>();

    ...

    public Basket(UUID id) {
        this.id = id;
    }
@Setter
@诺尔格构装师
@AllArgsConstructor
@建筑商
公共类篮子{
...
私有列表折扣=新的ArrayList();
...
公共篮子(UUID id){
this.id=id;
}

在升级之前,当调用单参数构造函数时,“折扣”将用一个空的ArrayList初始化初始值为null。我正在尝试缩小升级范围或导致此行为更改的原因,但不知道从何处开始。调用单参数构造函数时,我既不使用映射器逻辑也不使用生成的构造函数。是否有人遇到过类似问题?

是的,在尝试使用在使用mapstruct和lombok时,我们遇到了mapstruct无法使用.java文件创建映射的问题

这是由于lombok@Builder注释造成的。lombok还在编译时生成这些方法、构造函数和构建器,mapstruct没有找到它。
我的两分钱就是用自己的first和debug替换lombok annotation impl进行调试。

MapStruct通过生成
.java
文件来工作。你可以检查它们,看看它们是否在显式地设置这些值。这似乎很奇怪。你是否尝试删除该类?尝试放置
@Builder.Default
e> @Singularon
折扣