在 void 方法上使用 @NonNull 有什么作用?

What does using @NonNull on a void method do?

方法的 Lombok 注释 @NonNull 有什么意义?

class MyClass {
    @NonNull
    void run() {
        // code here
    }
}

我们是否检查 class MyClass 的实例(MyClass obj == null)?

对于 void 方法,没有意义。

对于return类型的方法,表明不会return null:

@NonNull String foo() {
    // I promise I won't return null herre!
}

根据 tutorial 判断,它似乎不会在方法内生成检查以确保它 不是 null,但它告诉任何来电者他们可以现实地期望一个非空值被 returned.

您可以在方法或构造函数的参数上使用 @NonNull 让 lombok 为您生成 null 检查语句。

Lombok 始终将字段上名为 @NonNull 的任何注释视为生成空检查的信号,如果 lombok 为您生成整个方法或构造函数,例如 @Data。但是,现在,在参数上使用 lombok 自己的 @lombok.NonNull 会导致在您自己的方法或构造函数中插入 null 检查语句。