【问题标题】:Is there a way to set 'not null' for all params of @AllArgsConstructor (lombok)有没有办法为@AllArgsConstructor (lombok) 的所有参数设置“不为空”
【发布时间】:2017-12-13 16:11:44
【问题描述】:

我在课堂上使用@AllArgsConstructor 注释并希望确保参数不为空。 有没有办法修改此注释以使其成为可能,或者我应该实现构造函数? 谢谢

@Getter
@Setter
@ToString
@AllArgsConstructor
public class Contact {

    private String name;
    private String phoneNumber;

}

...

<lombok.version>1.16.18</lombok.version>

【问题讨论】:

    标签: java lombok


    【解决方案1】:

    是的,您必须在此类字段上使用@ NonNull,这将导致生成的构造函数中的空检查。

    【讨论】:

    • 谢谢。只有一个问题:我用@NotNull 注释了这两个字段。当我像这样创建和对象时 Contact rob = new Contact(null, null);我得到 NullPointerException。但是当我创建一个像这样的对象时 Contact bill = new Contact("Bill", null); (只有phoneNumber = null)很好。没有例外 。为什么?
    • @IKo 你确定你得到了正确的注释吗? lombok 注解是@NonNull,而不是@NotNull。
    • @MichaelA.Schaffrath 你是对的。对于我不小心输入@NotNull的字段之一,谢谢!
    【解决方案2】:

    @RequiredArgsConstructor

    生成带有所需参数的构造函数。必需的参数是最终字段和具有约束的字段,例如@NonNull。 完整的文档可以在 @Constructor 的项目 lombok 功能页面中找到。 即使没有列出,这个注解也有 onConstructor 参数。有关详细信息,请参阅完整文档。

    【讨论】:

      猜你喜欢
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2010-11-18
      • 1970-01-01
      • 2010-10-19
      • 2021-02-23
      • 1970-01-01
      相关资源
      最近更新 更多