我一直在我的代码中使用lombok的@AllArgsConstructor
注释来保持代码干净。但我只是注意到我的同事用Java7的Objects.requireNonNull()
定义了自己的构造函数,并将参数传递给构造函数。
有人能告诉我这样做的优点(如果有的话)或缺点是什么?
答案 0 :(得分:3)
默认情况下,使用@AllArgsConstructor
不会创建任何null
项检查。您可以通过使用null
按照here注释您想要为非@NonNull
的字段来添加这些字段。
所以在我看来,创建自己的构造函数没有任何好处,除了你能够自定义抛出的异常的消息,这是使用ProjectLombok
无法实现的(但你需要它吗? )Lombok的消息只是null
字段的名称。