Начальный термин выражения поля должен быть конкретным SObject: Object - PullRequest
1 голос
/ 09 ноября 2010

У меня всего 2 объекта и простой запрос для извлечения данных.

Результат запроса, который сохраняется в массиве ccList в соответствии с выводом отладки:

(
    CustomThree__c:
    {
    Name=cusmei3 2, 
    customOne__c=a005000000IwnOPAAZ, 
    Id=a025000000FsFGQAA3
    }, 
    CustomThree__c:
    {
    Name=cusmei3 1, 
    customOne__c=a005000000IwnOUAAZ, 
    Id=a025000000FsFGLAA3
    }
)

Каквы можете увидеть system.debug(ccList[0]) возвращает:

CustomThree__c:{
    Name=cusmei3 2, 
    customOne__c=a005000000IwnOPAAZ, 
    Id=a025000000FsFGQAA3
}

Но когда я пытаюсь получить Id (или другое поле) из массива, происходит ошибка.Кто-нибудь может указать, что я делаю не так?

код

Object[] ccList;
ccList = [SELECT id, name, CustomOne__r.name  FROM CustomThree__c];
system.debug(ccList);
system.debug('******************************************');
system.debug(ccList[0]);
system.debug(ccList[0].Id); //this one cause the error

1 Ответ

2 голосов
/ 09 ноября 2010

Я думаю, вам придется изменить тип ccList с «Object» на «CustomThree__c». Это также даст вам проверку во время компиляции, когда вы попытаетесь написать ccList[0].SomeNonExistentFieldName__c.

Если вы не можете это сделать и действительно нуждаетесь в объекте, который хранит результат, чтобы он был универсальным - я считаю, что это должен быть SObject?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...