【发布时间】:2021-09-28 01:49:00
【问题描述】:
我有一个需要默认构造函数的 Student 类,我想用 @NoArgsConstructor 注释添加它,问题是当我添加它时,我的所有变量都会给出错误“变量‘xxx’可能没有被初始化”
这是课
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.UUID;
@Getter
@NoArgsConstructor
@Entity
public class Student {
private final UUID studentId;
private final String firstName;
private final String lastName;
private final String email;
private final Gender gender;
public Student(
@JsonProperty("studentId") UUID studentId
, @JsonProperty("firstName")String firstName
, @JsonProperty("lastName")String lastName
, @JsonProperty("email")String email
,@JsonProperty("gender") Gender gender) {
this.studentId = studentId;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"studentId=" + studentId +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", email='" + email + '\'' +
", gender=" + gender +
'}';
}
enum Gender{
MALE,FEMALE,male,female
}
}
【问题讨论】:
-
您是否看到使用无参数构造函数时对象中的字段确实不会被初始化?看看他们的声明。你明白为什么它们必须由构造函数初始化吗?