我正在寻找一个强制在将值传递给对象之前检查空值的短语,然后在调用该对象时,在对象内检查的方法中要检查的第一件事是空指针异常。
我之前看过这句话
你可以帮忙吗?对不起,我还没有澄清我的问题。
我之前在一本书中遇到过他们提到过一个短语的地方,在调用方法之前,检查了哪里可以防止传递空指针,而在被调用方法中完成的第一件事是检查空指针。
答案 0 :(得分:6)
public void go(String s)
{
if(null == s)
//do something
else
// normal execution.
}
答案 1 :(得分:2)
出现空指针异常。
这意味着,如果你想检查是否为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不会消除这些调用