【Apex】ナビゲーション演算子によるNullPointerException回避
今回はSalesforceのWinter21でリリースされるナビゲーション演算子についての簡単に使い方をまとめました。
ナビゲーション演算子とは
Winter21でリリースされた機能として、ナビゲーション演算子がリリースされました。
ナビゲーション演算子はNull条件演算子などと称されることもあり、C#やRubyなどを使用している方はお馴染みかもしれませんが、それがApexでも実現できるようになりました。
ナビゲーション演算子はポインタ型の変数に対して、Nullでなければ第二項の結果を返し、NullであればそのままNullを返す演算子となります。
これにより、今まで気を使っていたポインタ変数に対してのNullチェックをナビゲーション演算子を使うことによって1文で記述することが可能になります。
使い方
ナビゲーション演算子は『?.』という形で記述します。
ナビゲーション演算子は使い方を簡単に例にしてみました。
例)Accountの変数accに対して、NameをaccName(String)にセットする場合
今まではこのように、オブジェクト変数のNullチェックが必要でした。
(Nullチェックをせずに直接Nameを参照しようとすると、NullPointerException)
Account acc = null;
String accName = null;
// Accountに対するNullチェックが必要だった
if(acc != null){
accName = acc.Name;
}
ナビゲーション演算子によって、以下のように1文で取得することが可能になります。
Account acc = null;
// ナビゲーション演算子を使うと1文で記述することが可能
String accName = acc?.Name;
実際にデバッグで調べてみましょう。
以下のコードをOpen Execute Anonymous Windowで実行してみます。
// AccountをNullにしてName取得
Account acc = null;
System.debug('Account Name is ' + acc?.Name);
// Accountに値を設定してName取得
acc = new Account(Name = 'test');
System.debug('Account Name is ' + acc?.Name);
このようにAccountがNullであってもNullPointerExceptionが起きることなく、結果をNullで返してくれるということが分かりました。
今回はオブジェクト変数での検証となりましたが、List型や配列などでも使用可能ですので、今後はNullPointerExceptionを恐れることなくバンバン使っていきましょう!
Author And Source
この問題について(【Apex】ナビゲーション演算子によるNullPointerException回避), 我々は、より多くの情報をここで見つけました https://qiita.com/311052/items/7d0c8248a9c02dca58aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .