Skip to content

NonNull用法

这篇博文是从本人过去的 github pages 博客迁移过来,时间上会比较古老。

在编程中经常会需要对传入的参数做空引用检查。传统的做法是使用一连串的if语句对入参做检查,代码冗长又破坏整体感。

可以使用@NonNull在方法或构造函数的参数上,让lombok为您生成null-check语句。 @NonNull在Java库lombok v0.11.10中引入,而Android可以通过androidx.annotation库导入。

写一个例子:

java
public class Foo {
    Object mSomeObj;

    public Foo() {

    }

    /**
     * 使用 @NonNull 的写法
     * @param obj obj
     */
    public void setSomeObj(@NonNull Object obj) {
        this.mSomeObj = obj;
    }

    /**
     * 不使用 @NonNull 的写法
     * @param obj obj
     * @throws NullPointerException
     */
    public void setSomeObj_old(Object obj) 
            throws NullPointerException {
        if (mSomeObj == null) {
            throw new NullPointerException();
        }
        this.mSomeObj = obj;
    }
}