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

bar*_*ara 11 java lombok

是什么在点龙目岛标注@NonNull的方法?

class MyClass {
    @NonNull
    void run() {
        // code here
    }
}
Run Code Online (Sandbox Code Playgroud)

我们检查MyClass类的实例(MyClass obj == null)吗?

Jon*_*eet 22

对于一种void方法,没有意义.

对于具有返回类型的方法,它表明它不会返回null:

@NonNull String foo() {
    // I promise I won't return null herre!
}
Run Code Online (Sandbox Code Playgroud)

根据教程判断,它看起来不会在方法中生成一个检查以确保它不为 null,但它告诉任何调用者他们可以实际地期望返回非null值.

  • https://github.com/rzwitserloot/lombok/issues/907 - Lombok 开发人员拒绝为返回值生成 `null` 检查(( (3认同)