49
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Java】リストの要素がnullもしくは空であることをチェックしたい【CollectionUtils】

Last updated at Posted at 2018-06-11

最近、ソースレビューばっかりやってるんですが、リストのnull・空チェックを頑張ってくれている子が立て続けに出たので、「もしかして意外と知らないのかも?」と思い、まとめてみました。

解答1)頑張ったやり方

最近よく私がレビュー指摘を入れた「頑張ったチェック」はこんな感じ:arrow_down:

頑張った処理
List<String> strList = new ArrayList<String>();
// strListがどこかで定義されていたりメソッドの引数で入ってきたりしているとして・・・

if (strList == null || strList.size() == 0) {
  return true;
}

うん、あってる。
null&サイズチェックが出来れば、とりあえずつまらないnullPointerExceptionは回避できる。
4~6月ごろの新人研修だと、この書き方ができれば合格 :white_flower:

解答2)スマートなやり方

Javaには(Javaに限らずプログラミング言語にはたいてい)便利な外部ライブラリがたくさん揃ってます。
有名ドコだと「org.apache.commons」とか。
今回はorg.apache.commonsを使ってスマートに書いてみます。

スマートな処理
import org.apache.commons.collections4.*

List<String> strList = new ArrayList<String>();
// strListがどこかで定義されていたりメソッドの引数で入ってきたりしているとして・・・

if (CollectionUtils.isEmpty(strList)) {
  return true;
}

注目すべきはif文の中:exclamation:
外部ライブラリの1つである「Apache Commons Collections」を使いました。
※2018/06/11時点での最新のドキュメントはこちら :arrow_right: からApache Commons Collections 4.1 API

Apache Commons CollectionsはJavaのCollection系を便利に扱うライブラリで、この中にnullチェックとサイズ0チェックをまとめてやってくれるCollectionUtils.isEmpty()があるのです!

注意!

外部ファイルなので、Javaを普通にインストールしただけでは使えません:cry:
ダウンロードして読み込ませる必要があります。

eclipseだと、CollectionUtilsを入力補完したときにimport候補にorg.apache.commons.collections4.*が出てくれば、読み込み済みと判断できます。
ただ、たいていのJava案件ではほぼ導入されてます、多分。

まとめ

Listのnull・空チェックは、CollectionUtils.isEmpty()使うとすっきり書ける :pencil2:
ただし、Apache Commons Collectionsを事前に読み込んでいることが条件です。

49
43
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?