在以下两种情况下,@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;
}
.
.
}
答案 0 :(得分:1)
正如已经说过的那样,用delombok进行实验比问问题更有价值。但是,案例1很有趣,因为0
仅返回了MyClass(null).name
。
您可能会认为lombok不起作用,只是它不会重写您手动编写的构造函数。它仅保证其本身不会将null
分配给标记为null
的字段。您自己要做的是您的责任。
您不应该对龙目岛有太多期望。这是一个很棒的工具,可以使我的代码缩短30%,但就像使用每个工具一样,您必须了解其局限性。