2017-09-13 25 views
-3

我想知道我们是否可以在Java中使用相同的语句编写空指针指针,就像我们在groovy中做的那样?我有四个地方检查null。这可以更简化吗?是否有可能使Java代码为Groovy风格

if(doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM") != null) { 
      if(doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0) != null) { 
       Node searchResultNode = doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0); 
       if(searchResultNode != null) { 
       } 
      } 
    } 

doc.getDocumentElement()?.getElementsByTagName("SEARCH-RESULT-ITEM")?.item(0) 

是否有可能

回答

1

你问是否有可能在一个普通的Java项目中写Groovy的代码一样。简单回答是不。

但是,可以通过将空检查组合到一个条件中来简化该语句。另外,如果doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0)不为空,我们不需要检查局部变量。

if (doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM") != null 
     && doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0) != null { 
      Node searchResultNode = doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0); 
} 

这样做可以减少IF语句从3到1的数字,并消除冗余空检查:

所以我们可以结了。

0

在Java中没有安全的解除引用。

一般来说不好的做法是抛开nulls,可选类也可能会在方法开始的时候遏制checkNotNull,但没有像Groovy单行程序那样花哨。

相关问题