2010-11-09 3 views
1

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

Результат запроса, который хранится в массиве 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 

ответ

2

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

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

+0

Измененный объект для sObject решил проблему. Благодаря! –