- リンクを取得
- ×
- メール
- 他のアプリ
Salesforce における List
の空チェック方法の比較: isEmpty()
, size() > 0
, != null
Apex ではリストや配列を操作する際、リストが「空かどうか」を確認することが非常に一般的です。そのために利用できる 3 つの方法の違いと推奨される使い方を以下で解説します。
1. isEmpty()
メソッド
概要:
isEmpty()
メソッドはリストが「空」であるかを直接確認するためのメソッドです。リストが要素を持たない場合は true
を返します。
サンプルコード:
List<String> myList = new List<String>(); System.debug(myList.isEmpty()); // true
特徴:
myList.isEmpty()
は リストがnull
の場合にエラー になるため、リストがnull
の可能性がある場合は事前にnull
チェックが必要です。- コードが直感的かつ読みやすい。
2. size() > 0
概要:
size()
メソッドを使用してリストの要素数を取得し、それが 0 より大きいかどうかでリストが空かどうかを判断します。
サンプルコード:
List<String> myList = new List<String>(); System.debug(myList.size() > 0); // false
特徴:
size()
はリストがnull
の場合にエラーになるため、null
チェックが必要。- パフォーマンス的には
isEmpty()
と同等だが、記述が冗長になる。
3. != null
概要:
リストが null
でないことを確認する方法。リストが「空」(要素が 0 個)でも null
ではない場合は true
を返します。
サンプルコード:
List<String> myList = null; System.debug(myList != null); // false
特徴:
- リストが「空」かどうかではなく、「存在するか」を確認するための方法。
- リストが空である場合も
true
を返す ため、要素があるかどうかのチェックとしては不適切。
4. 各メソッドの比較
方法 | 空リスト ([] ) の場合 |
null の場合 |
説明 |
---|---|---|---|
isEmpty() |
true |
エラー | 空チェック専用、リストが存在している場合に使用。 |
size() > 0 |
false |
エラー | リストが存在し、要素があるかどうかを確認可能。 |
!= null |
true |
false |
リストの存在チェック用、空チェックには不適。 |
5. 推奨される書き方
リストが null
または空でないことを確認する場合:
if (myList != null && !myList.isEmpty()) { // リストにデータが存在 }
リストが null
または空であることを確認する場合:
if (myList == null || myList.isEmpty()) { // リストが存在しないか、空 }
リストの存在チェックだけ必要な場合:
if (myList != null) { // リストが存在している }
6. その他の注意点
-
初期化されたリスト
- 新規作成されたリスト (
new List
) は空であり、() null
ではありません。 - 初期化されていないリストは
null
の可能性があります。
- 新規作成されたリスト (
-
isEmpty()
とsize()
の違い- コードの可読性の観点から、空チェックには
isEmpty()
の使用が推奨されます。
- コードの可読性の観点から、空チェックには
-
パフォーマンス
- 実行時のパフォーマンス差はほとんどありませんが、
isEmpty()
の方が意図が明確になります。
- 実行時のパフォーマンス差はほとんどありませんが、
コメント
コメントを投稿