MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Apex】Listのnull判定、empty判定の使い分け

Listのnull判定やempty判定について開発中に気になったので軽くまとめてみました。

というのもコードレビューをしていると、人によって、

  • if(strList == null)
  • if(strList.size() == 0)
  • if(strList.isEmpty())

の使い方がばらばらだったりするわけです。

どのような時にどれを使用すればよいのか問題ですね。

目次

Listがnullのとき

まず、Listがnullの時の判定ですが、

if(strList == null)

を使用します。

以下のコードでは「strList」はインスタンス化されておらずnullの状態(入れ物がない状態)です。

判定に「size()」や「isEmpty()」を使用するとNullPointerExceptionとなってしまいます。

List<String> strList;

if(strList == null){

    system.debug('nullです');

}
[5]|DEBUG|nullです

Listのサイズが0、もしくは空のとき

次にリストの要素の数が0件の場合や、空の場合の判定です。

以下のコードでは、strListはインスタンス化されているのでnullではなく「空」となります。

この場合、

「size() == 0」もしくは「isEmpty()」

を使用します。

List<String> strList = new List<String>();

if(strList == null){
    system.debug('nullです');
}

if(strList.size() == 0){
    system.debug('0です');
}

if(strList.isEmpty()){
    system.debug('Emptyです');
}
[8]|DEBUG|0です
[12]|DEBUG|Emptyです

「size() == 0」と「isEmpty()」、どちらを使用しても結果的には同じですが、要素のサイズを重視しない場面であれば、「isEmpty()」を優先的に使用するのがよさそうですね。

まとめ

「size() == 0」と「isEmpty()」ですが、基本的には「isEmpty()」を使用する、で問題なさそうですね。

Listの中身があるかどうかの判定なのでTrue、Falseで返す「isEmpty()」の方が理にかなっている気もします。

また、これらの2つはListがnullでないことが前提です。

必要に応じてNullチェックを行うなどしてNullPointerExceptionを回避していきましょう、ってことですね。

今回は以上です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次