Начальный термин выражения поля должен быть конкретным Sobject: объект

StackOverflow https://stackoverflow.com/questions/4131723

Вопрос

У меня есть только 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
Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top