JavaでStringがnullまたは空文字かを判別する方法をメモしておきます。
昔から使われている方法
Java6から使えるチェック方法です。注意点として、str == nullとstr.isEmpty()の順番を間違わないようにしましょう。str.isEmpty()を先に書くと、strがnullの場合にNullPointerExceptionが発生します。str == nullを先に書くと、strがnullの場合、str == nullはtrueと評価されるため、式全体がtrueとなり、後者のstr.isEmpty()は評価されずNullPointerExceptionは発生しません。
Javaでは、A && Bのような論理式において、A=falseとわかれば、Bがどうあれ結果はfalseになるので、Bは評価されないのです。
外部ライブラリを使う方法
上の例では、org.apache.commons.lang.StringUtilsライブラリをインポートしてStringUtils.isEmpty()メソッドを使っています。StringUtils.isEmpty()は、文字列がnullか空文字かをチェックしてくれます。str=nullのときでも例外が発生しないのがいいですね。
Springフレームワークの場合、org.springframework.util.StringUtilsライブラリを使うと同じことができます。
おまけ:ブランク文字も合わせてチェックする方法
さきほどご紹介したorg.apache.commons.lang.StringUtilsやorg.springframework.util.StringUtilsといったライブラリのStringUtils.isBlank()メソッドを使うと、nullか空文字かに加えて、ブランク文字(例. " ")かどうかのチェックも簡単に行えます。
まとめ
JavaでStringがnullまたは空文字かを判別する方法でした。