检查空指针

时间:2013-05-23 22:37:40

标签: java terminology

我正在寻找一个强制在将值传递给对象之前检查空值的短语,然后在调用该对象时,在对象内检查的方法中要检查的第一件事是空指针异常。

我之前看过这句话

你可以帮忙吗?

对不起,我还没有澄清我的问题。

我之前在一本书中遇到过他们提到过一个短语的地方,在调用方法之前,检查了哪里可以防止传递空指针,而在被调用方法中完成的第一件事是检查空指针。

4 个答案:

答案 0 :(得分:6)

防守编码就是这种做法。

public void go(String s)  
{  
    if(null == s)  
        //do something
    else
    //  normal execution.
}  

答案 1 :(得分:2)

当你有一些未初始化的对象(非初始化对象的默认值为null)时,

出现空指针异常

这意味着,如果你想检查是否为null,你应该使用比较运算符。像:

if (object == null) {
    // do something
}

答案 2 :(得分:1)

在创建对象之前,您可以使用单词assert检查参数,即:

assert yourValue != null

默认情况下,在运行时禁用断言。要启用它们,请将option -enableassertions(或-ea)传递给JVM。

另一种可能性(自Java 7开始)是在构造函数/方法中使用方法requireNonNull direclty,这是构造函数的一个示例:

public Foo(Bar bar, Baz baz) {
     this.bar = Objects.requireNonNull(bar, "bar must not be null");
     this.baz = Objects.requireNonNull(baz, "baz must not be null");
 }

否则,因为@ Woot4Moo说你可以使用if语句。

答案 3 :(得分:1)

理论上,Object的任何实例方法都可以工作,尽管没有一个很便宜的突出方法。最有可能是theReference.hashCode()theReference.equals(theReference)(或者theReference.equals(null)。Java标准要求对任何方法调用进行评估,因此编译器或JITC不会消除这些调用