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

问题描述 投票:10回答:2

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

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

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

java lombok
2个回答
18
投票

对于void方法,没有意义。

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

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

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


-2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.