理解 java/apex 复杂的三元运算符

Understanding java/apex complex ternary operator

这是 apex 代码,但提议似乎在 Java 或 JScript 中工作。

我有以下代码行(包括注释):

// If GPMIR_fld_codigoOrigen__c 09 Fotofactura will not be assigned to agency for send csv

eLead.GPMIR_fld_assignAgency__c = (eLead.GPMIR_fld_codigoOrigen__c!='09') ? ((u.Contact != null && u.Contact.Account != null && rt == 'Agencia') ? u.Contact.Account.Id : null) : null;

尝试将翻译常规if-else我认为这里发生的事情是(包括评论):

// If GPMIR_fld_codigoOrigen__c != 09 then GPMIR_fld_assignAgency__c == null

if(eLead.GPMIR_fld_codigoOrigen__c!='09'){
    if(u.Contact != null && u.Contact.Account != null && rt == 'Agencia'){
        eLead.GPMIR_fld_assignAgency__c = u.Contact.Account.Id;
    }else{
        eLead.GPMIR_fld_assignAgency__c = null;
    }
}else{
    eLead.GPMIR_fld_assignAgency__c = null;
}

可能我错了但是如果有人能帮我做正确的翻译我会很感激

似乎是正确的,但您也可以在函数内执行此操作

Public string MyFunction(){
 if(eLead.GPMIR_fld_codigoOrigen__c!='09'){
    if(u.Contact != null && u.Contact.Account != null && rt == 'Agencia'){
        Return u.Contact.Account.Id;
    }
}
Return null;
}```
//Then in main(), eLead.GPMIR_fld_assignAgency__c = MyFunction()

希望我也是对的。