背景
今天写项目用lombok的@Builder
注解,突然就报错咯。
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类则是通过私有构造函数来实例化,默认是全参数的构造函数。