以前投稿した記事で、String型のnullチェックは.isEmpty()を使えばいいということを書いたんですが、どうやらこのメソッド2つあるらしいのでその違いと注意点をまとめていこうと思います。
String.isEmptyとStringUtils.isEmpty
isEmptyメソッドには「String.isEmpty」と「StringUtils.isEmpty」があるそうです。共通点としては、どちらも『空文字判定をしてくれる』という点でが挙げられます。
相違点
では、どういった点が異なっているのか。 答は『null判定をしてくれるか否か』という点にあります。StringUtils.isEmptyは空文字の場合trueを返すのと同時に、nullの場合もtrueを返してくれます。
一方で、String.isEmptyはnullの場合はNullPointerExceptionが発生してしまいます。
この違いを明らかにしておかないとnullチェックの意味を成せないということになってしまいますね。
StringUtils.isEmptyの使い方
StringUtils.isEmptyを使用したい場合は「Apache Commons Lang」のライブラリをインストールして「org.apache.commons.lang3.StringUtils」をインポートする必要があるそうです。プロジェクトにライブラリがインストールさえされていれば、あとはエディターで簡単にインポートできそうですね。
まとめ
今回は、以前まとめたnullのチェックを深めた内容でした。使い分けは、そのプロジェクトで色々状況が違うでしょうから一概には言えませんが、私が使用するのは大体StringUtils.isEmptyです。(空文字はNGでnullはOKという場面があまりないから。)今までは無意識的に使っていましたが、今後は目的と機能を意識して実装していきたいと思います。