Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用if/else语句查找空值?_Java_String_If Statement_Error Handling_Null - Fatal编程技术网

Java 如何使用if/else语句查找空值?

Java 如何使用if/else语句查找空值?,java,string,if-statement,error-handling,null,Java,String,If Statement,Error Handling,Null,我的当前代码如下所示(请注意,getId()返回一个string值): 但是,如果person.getId()的值为null,我仍然会得到一个null指针异常 如何解决此问题?通常情况下,测试如下: 对象不为空 对象的属性是所需要的 举个例子,如果这个人存在并且没有id,你可能需要做些什么 if (person != null && person.getId() == null) { // Do something, for example create person

我的当前代码如下所示(请注意,
getId()
返回一个
string
值):

但是,如果
person.getId()
的值为null,我仍然会得到一个
null指针异常


如何解决此问题?

通常情况下,测试如下:

  • 对象不为空
  • 对象的属性是所需要的
举个例子,如果这个人存在并且没有id,你可能需要做些什么

if (person != null && person.getId() == null) {
    // Do something, for example create person on the db
} 
这解决了
person
为空的问题



请注意,可能有
person
null
这是一个错误。

通常测试如下:

  • 对象不为空
  • 对象的属性是所需要的
举个例子,如果这个人存在并且没有id,你可能需要做些什么

if (person != null && person.getId() == null) {
    // Do something, for example create person on the db
} 
这解决了
person
为空的问题


请注意,可能有
person
null
这是一个错误。

请尝试:

if(person == null || person.getId() == null) {
    // do something
} else {
    // do something else
}
尝试:

以Java8中引入的

对于某些类,如String,可以使用“value.equals”(myString)代替myString.equals(“value”),如果myString为null,则断言将失败,而不是抛出NPE。

采用Java8中引入的一种方法


对于某些类,如字符串,您可以执行“value”。equals(myString)而不是myString。equals(“value”),如果myString为null,则断言将失败,而不是抛出NPE。

执行if not null检查,然后执行其他操作。这取决于“do something”的操作。您确定person不为null吗?您需要确保person不为null。有时,值可能为null,其他时候它有一个值做一个if not null检查,然后是else。这取决于“do something”做什么。你确定person不为null吗?你需要确保person不为null吗?有时候这个值可以为null,其他时候它有一个值
if(person==null&&person.getId()==null)
应该选择在
if之上(person==null | | | | person.getId()==null)
因为如果person==null不为null,JVM将在person==null之后停止检查,而| | |(or)将导致第二条语句也被检查。
if(person==null&&person.getId()==null)
应该选择if(person==null | | person.getId()=null)
因为JVM将在person==null之后停止检查,如果它不是null,| |(or)将导致第二条语句也被检查。