SOSLで複数のオブジェクトに検索をかけた結果を取り出す時に使える書き方をTrailheadから学んだ。
Trailheadの例文だが、コメントを入れただけ。メモメモ。
List<List<SObject>> searchlist = //WingoとSFDCの検索結果リストを格納するリストを宣言
[FIND 'Wingo OR SFDC' IN ALL FIELDS
RETURNING Account (Name), Contact(FirstName, LastName, Department)];
//searchlistの中の1個目のリスト(Accountで返されたリスト)をAccount[]でキャスト
Account[] searchAccounts = (Account[])searchlist[0];
//searchlistの中の2個目のリスト(Contactで返されたリスト)をContact[]でキャスト
Contact[] searchContacts = (Contact[])searchlist[1];
System.debug('Found the following accounts.');
for (Account a : searchAccounts) {
System.debug(a.Name);
}
System.debug('Found the following contacts.');
for (Contact c : searchContacts){
System.debug(c.LastName + ' '+ c.FirstName);
}