问题描述
创建User类时,添加了@Data
注解和User的构造方法
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
public User(Long id, String name, Integer age, String email) {
this.id = id;
this.name = name;
this.age = age;
this.email = email;
}
}
但是之后创建User对象时,发现使用无参构造方法时报错
@Data注解介绍
@Data
主要功能是:丰富java自动资源管理,自动生成getter、setter、equals、hashCode和toString等等
以及另外两个注解
@AllArgsConstructor
: 注解在类上,有参构造
@NoArgsConstructor
: 注解在类上,无参构造
不生效原因
自定义了一个有参数的构造方法,并且没有显式地定义无参构造方法,@Data 生成的无参构造方法被有参数的构造方法覆盖了。
解决方法
再显式地定义一个无参构造方法
public User() {
}