lombok @AllArgsConstructor 与使用 Objects.requireNonNull() 定义我自己的构造函数

lombok @AllArgsConstructor vs defining my own constructor using Objects.requireNonNull()

我一直在我的代码中使用 lombok 的 @AllArgsConstructor 注释来保持代码整洁。但我刚刚注意到我的同事使用 Java7 的 Objects.requireNonNull() 定义了他们自己的构造函数,并将参数传递给构造函数。

谁能告诉我这样做的优点(如果有的话)或缺点是什么?

默认情况下,使用 @AllArgsConstructor 不会创建任何 null 检查。您可以按照 here.

所述,通过使用 @NonNull 注释您想要非 null 的字段来添加这些字段

所以在我看来,创建自己的构造函数除了可以自定义抛出的异常消息之外没有任何好处,使用 ProjectLombok 是不可能的(但你需要it?) Lombok的message只是字段名即null.