这个问题在这里已有答案:
有时候我会看一些人制作最终字段并创建Lombok看起来像:
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class Person {
private final String firstName;
private final String middleName;
private final String lastName;
一些时间字段不标记最终。当我们在@Entity中标记最终字段时,何时不在?
一旦您不希望在构造对象后更改字段,您就可以创建一个字段。
它还可以帮助多线程环境,以保证安全对象初始化和共享。
在Lombok和@AllArgsConstructor
注释中,您可以使用final
关键字来确保在构造函数中初始化后对象不会更改。此注释将获取构建构造函数的所有字段。
还有@RequiredArgsConstructor
注释,它使用标记有final
的字段来构建构造函数:
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class Person {
private final String firstName;
private final String middleName;
private String lastName;
}
在delombok之后,你的构造函数将如下所示:
@java.beans.ConstructorProperties({"firstName", "middleName"})
private Person(String firstName, String middleName) {
this.firstName = firstName;
this.middleName = middleName;
}