Lombok注释@NonNull
的方法有什么意义?
class MyClass {
@NonNull
void run() {
// code here
}
}
我们检查MyClass类的实例(MyClass obj == null)吗?
对于void
方法,没有意义。
对于具有返回类型的方法,它表明它不会返回null:
@NonNull String foo() {
// I promise I won't return null herre!
}
从tutorial判断,看起来它不会在方法中生成一个检查以确保它不为null,但它告诉任何调用者他们可以实际期望返回非null值。
您可以在方法或构造函数的参数上使用@NonNull
让lombok为您生成null-check语句。
Lombok总是将字段上的任何名为@NonNull
的注释视为生成空检查的信号,如果lombok为您生成整个方法或构造函数,例如@Data
。但是,现在,在参数上使用lombok自己的@lombok.NonNull
会导致在您自己的方法或构造函数中插入null-check语句。