天天看点

使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型背景解决方案

背景

今天写项目用lombok的

@Builder

注解,突然就报错咯。

使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型背景解决方案

Error:(14, 1) java: 无法将类 xxx 中的构造器 xxx 应用到给定类型;

需要: 没有参数

找到: java.lang.Integer,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean,java.lang.String,java.util.Date,java.lang.String,java.util.Date

原因: 实际参数列表和形式参数列表长度不同

解决方案

builder默认用的是全参数构造函数?尝试加了@AllArgsConstructor。

它的实现方式是会对标注这个注解的类的所有成员变量,所以在使用@Builder构建的时候如果不显式的对某变量赋值的话默认就是null,因为这个变量此时是Builder类里的,通过调用build()方法生成具体T类则是通过私有构造函数来实例化,默认是全参数的构造函数。