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

2022-09-03 12:24:19

龙目岛注释中的方法有什么意义?@NonNull

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

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


答案 1

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

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

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

本教程来看,它似乎没有在方法中生成检查以确保它不是空的,但它告诉任何调用方,他们可以现实地期望返回非空值。


答案 2

您可以使用方法或构造函数的参数让龙目岛为您生成空检查语句。@NonNull

龙目岛始终将字段上命名的任何注释视为信号,以便在龙目岛为您生成整个方法或构造函数时生成空值检查,例如通过。但是,现在,在参数上使用 lombok's own 会导致在你自己的方法或构造函数中只插入 null-check 语句。@NonNull@Data@lombok.NonNull


推荐