Apex sObject Switchのサンプル

概要
sObject 値で切り替える場合、instanceof チェックとキャストを暗黙的に実行できます。
たとえば、if-else ステートメントを使用する次のコードがあるとします。

使用例

if (sobject instanceof Account) {
   Account acc = (Account)sobject;
   System.debug('account' + acc);
} else if (sobject instanceof Contact) {
   Contact cc = (Contact)sobject;
   System.debug("contact" +cc);
} else {
   System.debug('default aa');
}

このコードを次の switch ステートメントで置き換えて簡略化できます。

switch on sobject {
   when Account acc {
       System.debug('account ' + acc);
   }
   when Contact cc {
       System.debug('contact ' + cc);
   }
   when null {
       System.debug('null');
   }
   when else {
       System.debug('default');
   }
}

 

IT

Posted by arkgame