はじめに(読み飛ばし推奨なので折り畳み)
こんにちは。なっしーです!しばらくQiitaを放置しつつ、業務や資格試験に挑戦などをしていたらあっという間に開発経験1年半強?くらいになってました。
大学やPa〇zaで書いていた独りよがりなコードとは違い、きちんとした制約や原則に基づいた美しいコードにずっと触れる毎日でとても楽しいです。
今回は業務で得た豆知識を紹介したいと思います!
(おそらく多くの人が知っているものかもしれませんが、私と同じ若手向けの記事なのでユルシテ…ユルシテ…)
想定読者層
この記事は私と同じ若手向けのものです。
Javaがほんの少しだけわかり、Javaでの業務ロジックや個人開発などでコードを書き始めた人を想定しています。
忙しい人向け結論
- ListのnullチェックにはCollectionUtils.isEmpty()を使おう!
- CollectionUtils.isEmpty()はListだけでなく、Collectionであれば全部使えるよ!
- CollectionUtilsはSpring版とApache版があるよ!
なぜCollectionUtils.isEmpty()を使うのか
主に可読性の観点から使用をオススメします。
このメソッドはCollectionであればList以外でも使用できます。
皆さんは以下のようなnullチェックを書いたことはありますか?
List foge = new ArrayList<>();
if (foge == null || foge.size() == 0){
// 何らかの処理
}
よくあるnullチェックですね。
この書き方でも問題なく動きます。
上記をisEmpty()を使って書き換えるとこうなります。
// Apache版
import org.apache.commons.collections4.CollectionUtils;
// Spring版
// import org.springframework.util.CollectionUtils;
// 中略
List foge = new ArrayList<>();
if (Collections.isEmpty(foge)){
// 何らかの処理
}
「Collections.isEmpty」という名前によって、Collectionのnullチェックをしていることが一目でわかりますね。
また、foge == null
とfoge.size() == 0
という2つの式を書かなくて良くなるので、どちらか一方の式を書き忘れてしまうというリスクもなくなります。
Apache版?Spring版?
CollectionUtils.isEmpty()はApache版とSpring版が存在します。
双方の機能に差はありません。
自分が作っているプロジェクトの依存関係に合わせて選ぶと良いと思います。
チームのプロジェクトで使用したことがないライブラリであれば、使用許可は忘れずに…
🔻公式ドキュメントたち
終わりに
今回はCollectionUtils.isEmpty()について解説してみました!
これからも豆知識があれば共有していきたいと思います!
読んでいただき、ありがとうございました!