こんにちは、にいるです。
Salesforceのリリースノート(WI21)に記載のあった「安全なナビゲーション演算子」について書きたいと思います。
・【Trailhead】項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる
・【ヘルプ】安全なナビゲーション演算子
1.安全なナビゲーション演算子とは
安全なナビゲーション演算子とはApexで使用する判定式の1つです。
下記が例です。
1 2 3 4 |
// 安全なナビゲーション演算子 ?. // サンプル a?.b |
意味はaを先に評価して、aがNullならNullを返して、Nullでなければ、Bを返します。
これを使うとNullPointerExceptionが起きなくなります。
めちゃくちゃ便利ですね!
次に使用例を記載します。
2.安全なナビゲーション演算子を使ってみる
今までのチェック方法と比較してみます。
1 2 3 4 5 6 7 8 9 10 |
// 取引先責任者をクエリ this.con1 = [Select Id,Name,Department FROM Contact]; // ①今までのNullチェック方法 if(con1.Department == Null){ conName1 = con1.Department ; } // ②安全なナビゲーション演算子を使用した例 String conName1 = con1?.Department ; |
このように、「①今までのNullチェック方法」ではNullチェックしたい変数や項目に対して判定方法とその処理内容を別々に書く必要がありました。
ですが、「②安全なナビゲーション演算子を使用した例」にもあるように、一文で書き切ることができます。
可読性も上がるので、これはとても便利な演算子だと思います。
判定式なので、SOQLの結果にも使用できます。
1 2 |
// return文 return [SELECT Name FROM Account WHERE Id = :accId]?.Name; |
3.まとめ
いかがでしたでしょうか。
Nullチェックはって意外とスルーしてしまいますよね。
そこでいつもA Null objectとかって怒られてることもしばしば笑
ですが、この演算子の登場によって、コードもシンプルになってNull例外も簡単に回避できそうです。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント