Salesforce Apex:List.add(值 || 'default value')?
Salesforce Apex: List.add( value || 'default value')?
查询 Account sObjects 后,我将所有字段添加到列表中。问题是一些 Account sObjects 有某些字段,而其他的则没有。在将字段添加到我的列表时,我希望能够添加字段(如果存在)或添加默认字符串。
让我们看一下这个例子。
我的查询:
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(值 || 'default value')?
谢谢!
对这些字符串进行这些操作的目的是什么?你需要做什么?我真的无法想象此代码的任何用例,我想您的任务可能会以更方便的方式完成。
无论如何,您的问题的答案是使用 ternary operator - ?:
tmp.add(j.name != null ? j.name : 'No Contact Name Associated');
查询 Account sObjects 后,我将所有字段添加到列表中。问题是一些 Account sObjects 有某些字段,而其他的则没有。在将字段添加到我的列表时,我希望能够添加字段(如果存在)或添加默认字符串。
让我们看一下这个例子。
我的查询:
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(值 || 'default value')?
谢谢!
对这些字符串进行这些操作的目的是什么?你需要做什么?我真的无法想象此代码的任何用例,我想您的任务可能会以更方便的方式完成。
无论如何,您的问题的答案是使用 ternary operator - ?:
tmp.add(j.name != null ? j.name : 'No Contact Name Associated');