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

时间:2015-01-14 16:37:51

标签: java lombok

方法的Lombok注释@NonNull中的要点是什么?

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

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

2 个答案:

答案 0 :(得分:18)

对于void方法,没有意义。

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

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

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

答案 1 :(得分:-2)

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

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