2015-02-12 4 views
0

После запроса для sObjects аккаунта я добавляю все поля в список. Проблема в том, что некоторые объекты sObject имеют определенные поля, а другие нет. Добавляя поля к моему списку, я хотел бы иметь возможность добавлять поле, если оно существует ИЛИ добавить строку по умолчанию.Salesforce Apex: List.add (значение || 'значение по умолчанию)?

Давайте рассмотрим пример.

Мой запрос:

List<Account> accountQuery = [SELECT name, (SELECT name, id FROM Contacts) FROM Account]; 

Моя карта:

Map<String, List<String>> Result = new Map<String, List<String>>(); 

Итерация через queryResult и сохранение значения:

For(Account i : accountQuery){ 
    String[] temp = new list<string>(); 
    temp.add(i.name) 
    //Now loop through contacts subquery 
    if(!i.contacts.isEmpty()){ 
     for(contact j : i.Contacts){ 
      temp.add(j.name || 'No Contact Name Associated'); //Doesn't work 
      temp.add(j.id || 'No Contact Id Associated'); 
     } 
    } 
    else{ 
     temp.add('No Contact Name Associated'); 
     temp.add('No Contact Id Associated'); 
    } 
}; 

Как я могу добиться этого temp.add (значение || 'значение по умолчанию')?

Спасибо!

ответ

0

Какова цель этих манипуляций с этими строками? Что тебе нужно сделать? Я действительно не могу представить какой-либо прецедент для этого кода, и я предполагаю, что ваша задача может быть выполнена более удобным способом.

В любом случае, ответ на ваш вопрос, используя ternary operator - ?:

tmp.add(j.name != null ? j.name : 'No Contact Name Associated');