是否有可能使Java代码成为时髦的风格

时间:2017-09-13 11:15:18

标签: java groovy

我试图知道我们是否可以在Java中的同一语句中编写空检查指针,就像我们在groovy中一样?我有四个地方可以检查null。这可以更简化吗?

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) {
                }
           }
    }

as

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

是否可能

2 个答案:

答案 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,并消除冗余的空检查。

答案 1 :(得分:0)

Java中没有安全的解引用。

通常不好的做法是抛弃空值,而可选类也可以在方法的开头拯救checkNotNull,但没有像Groovy单行一样好看。