2017-09-13 7 views
-3

Groovyと同じように、Javaの同じ文にヌルチェックポインタを書くことができるかどうかを知りたいですか? nullをチェックする場所は4つあります。これはもっと簡略化できますか?Javaコードをグルーヴィースタイルにすることは可能ですか?

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

として

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

ことが可能

答えて

1

です、通常のJavaプロジェクトでGroovyのようなコードを書くことが可能である場合は、尋ねました。簡単な答えはいいえです。

ただし、nullチェックを1つの条件に組み合わせることで、この文を簡略化できます。さらに、doc.getDocumentElement().getElementsByTagName("SEARCH-RESULT-ITEM").item(0)がnullでない場合、ローカル変数をチェックする必要はありません。

だから、で終わることがあります。これを行う

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

は3から1にIF文の数を減らし、冗長ヌルチェックを排除します。

0

Javaでは安全な参照解除はありません。

nullsを投げるのは悪い習慣です。オプションクラスは、メソッドの始めにcheckNotNullをレスキューするようになるかもしれませんが、Groovyの1ライナーと同じくらい素晴らしいものはありません。

関連する問題