Есть такой код:
List <Object1__c> listOfObject1 = Database.query('SELECT CreatedDate, Float__c FROM Object1__c ' );калькуляция с полем CreatedDate и Float__c
List <Object2__c> listOfObject2 = Database.query('SELECT CreatedDate, Float__c FROM Object2__c ' );
калькуляция с полем CreatedDate и Float__c
хочу обобщить этот код, выведя все вычисление в метод.
пробую так:
if(objectType == 'Object1__c') List<Object1__c> listRecords = new List<Object1__c>();
else if(objectType == 'Object2__c') List<Object2__c> listRecords = new List<Object2__c>();
и далее работать с listRecords как обычно, но нет, не компилируется.
ну ладно, давайте обратимся к записям как sObject
List <sObject> listRecords = Database.query('SELECT CreatedDate, Float__c FROM '+ objectType );обратиться то можно, а вот работать с полями - нельзя.
можно конечно попробовать привести sObject к конкретному типу и делать калькуляцию, но здесь будет не меньше кода чем было, нет обобщения.
есть идеи?
спасибо
get у sObject

оказывает у sObject есть много годных методов...
работал сегодня с классом к которому обращаются многие тригеры для того, чтобы создать share запись ("мануально зашерить" запись).
так вот - все эти __share объекты - оно совершенно однотипные, с одинаковыми полями.
поэтому создаю __share запись так:
sObject share = (sObject)Type.forName( namesTypes.get(recType) ).newInstance();share.put('ParentId', recID);
...
insert share;
а для удаления кверю их в Лист <sObject> и удаляю.
Ляпота...
размер кода уменьшился в десять раз. Как и время его последующего обслуживания.
К сожалению такой подход прокатывает только с обьектами а с классами нет. Или я чего-то не знаю?
размер кода уменьшился в десять раз. Как и время его последующего обслуживания.
Хоть кто-то меня понимает)К сожалению такой подход прокатывает только с обьектами а с классами нет. Или я чего-то не знаю?
Прокатит, если наследуются от одного базового класса
Хоть кто-то меня понимает)
К сожалению такой подход прокатывает только с обьектами а с классами нет. Или я чего-то не знаю?
К сожалению такой подход прокатывает только с обьектами а с классами нет. Или я чего-то не знаю?
ООП же
Ну на сколько я знаю в нормальных языках можно динанически получать доступ к свойствам класса.
Ну на сколько я знаю в нормальных языках можно динанически получать доступ к свойствам класса.
К сожалению такой подход прокатывает только с обьектами а с классами нет. Или я чего-то не знаю?
ООП жеНу на сколько я знаю в нормальных языках можно динанически получать доступ к свойствам класса.
Ну на сколько я знаю в нормальных языках можно динанически получать доступ к свойствам класса.
На апексе всегда можно сериализовать в JSON, а потом десериализовать в мапу)