- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
Apexでの文字列比較における equals
と ==
の違い
Apexでは、文字列比較において equals
メソッドと ==
演算子の両方が使用できますが、それぞれの用途や動作に違いがあります。以下に、Apexでの文字列比較に関する重要なポイントを詳しく説明します。
1. ==
演算子
- 目的: 文字列の内容を比較します。
- 動作: Apexにおいては、
==
は文字列の内容を比較するようにオーバーロードされています。そのため、通常は==
を使用するだけで内容の比較が可能です。 - 例:
String str1 = 'Salesforce'; String str2 = 'Salesforce'; System.debug(str1 == str2); // 結果: true
2. equals
メソッド
- 目的:
equals
メソッドも文字列の内容を比較するために使用されます。 - 動作: 実質的には
==
と同じ動作をしますが、より明示的に文字列内容を比較していることを表現できます。 - 例:
String str1 = 'Salesforce'; String str2 = 'Salesforce'; System.debug(str1.equals(str2)); // 結果: true
主要な違いのまとめ
Apexでは、==
と equals
はどちらも文字列の内容を比較するように動作します。ただし、==
はコードを簡潔にするためによく使われます。
比較基準 | == |
equals() |
---|---|---|
目的 | 文字列の内容を比較 | 文字列の内容を比較 |
コードの可読性 | 簡潔で読みやすい | より明示的 |
推奨される用途 | 一般的な比較 | 明示的な比較や標準性が必要な場合 |
特殊なケース: null
の取り扱い
Apexでは、null
の比較時に ==
と equals
の動作が異なる場合があります。
==
を使用した場合:- 両方の値が
null
の場合、true
を返します。
String str1 = null; String str2 = null; System.debug(str1 == str2); // 結果: true
- 両方の値が
equals
を使用した場合:- 呼び出し側の値が
null
の場合、NullPointerException
がスローされます。
String str1 = null; String str2 = 'Salesforce'; System.debug(str1.equals(str2)); // 実行時にエラー: NullPointerException
- 呼び出し側の値が
実践的な使用例
null
安全性を確保した比較:String str1 = null; String str2 = 'Salesforce'; Boolean isEqual = (str1 != null && str1.equals(str2)); System.debug(isEqual); // 結果: false
シンプルな比較:
String str1 = 'Salesforce'; String str2 = 'Salesforce'; if (str1 == str2) { System.debug('文字列は一致します'); }
結論
- 一般的な文字列比較には
==
を使用することを推奨します。 equals
を使用する場合は、null
に注意が必要です。- コードの意図を明確にするため、
equals
を使用する場面を適切に選びましょう。
コメント
コメントを投稿