当我们在实体中使用最终字段时? [重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

有时候我会看一些人制作最终字段并创建Lombok看起来像:

@AllArgsConstructor(access = AccessLevel.PRIVATE) 
    public class Person {

        private final String firstName;

        private final String middleName;

        private final String lastName;

一些时间字段不标记最终。当我们在@Entity中标记最终字段时,何时不在?

java lombok
2个回答
0
投票

一旦您不希望在构造对象后更改字段,您就可以创建一个字段。

它还可以帮助多线程环境,以保证安全对象初始化和共享。


0
投票

在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;
}
© www.soinside.com 2019 - 2024. All rights reserved.