关于龙目岛@NonNull用法的说明

时间:2019-06-15 07:23:35

标签: java lombok

在以下两种情况下,@NonNull的用法有何区别:

情况1:

class MyClass {
    @NonNull
    private String name;

    @Builder
    MyClass(String name) {
        this.name = name;
    }
    .
    .
}

情况2:

class MyClass {
    private String name;

    @Builder
    MyClass(@NonNull String name) {
         this.name = name;
    }
    .
    .
}

1 个答案:

答案 0 :(得分:1)

正如已经说过的那样,用delombok进行实验比问问题更有价值。但是,案例1很有趣,因为0仅返回了MyClass(null).name

您可能会认为lombok不起作用,只是它不会重写您手动编写的构造函数。它仅保证其本身不会将null分配给标记为null的字段。您自己要做的是您的责任。

您不应该对龙目岛有太多期望。这是一个很棒的工具,可以使我的代码缩短30%,但就像使用每个工具一样,您必须了解其局限性。