在Lombok中,@AllArgsConstructor和@RequiredArgsConstructor有什么区别?

Mat*_* C. 33 java lombok

Lombok 为 java 构造函数提供了多种注释,包括但不限于@AllArgsConstructor@RequiredArgsConstructor。这两者之间有什么区别?什么时候使用其中一种而不是另一种?我找到了这个文档,但措辞有点复杂,我很难理解两者之间的基本区别。

Mat*_* C. 43

简而言之,用于@AllArgsConstructor 为类的所有字段生成构造函数,并用于@RequiredArgsConstructor为标记为Final的所有类字段生成构造函数。

文档来看,

@AllArgsConstructor为类中的每个字段生成一个带有 1 个参数的构造函数。

@RequiredArgsConstructor为每个需要特殊处理的字段生成一个带有 1 个参数的构造函数。所有未初始化的最终字段以及任何标记为 @NonNull 且未在声明位置初始化的字段都会获得一个参数。