Можно ли преобразовать строку в оператор программирования в вершине?

Public String var='public String var1=\'Some text\'; ' ;

Мне нужно, чтобы эта строка внутри var выполнялась и создавала переменную «Var1» и присваивала ей значение «Some text».

Можно ли сделать это? Если да, то как это будет возможно?


person kso    schedule 27.11.2014    source источник
comment
salesforce.stackexchange.com /questions/51707/ - я предполагаю, что вы знаете, как разобрать строку и получить значение, которое вы хотите присвоить. Другие вещи должны быть в ссылке.   -  person Andrii Muzychuk    schedule 28.11.2014


Ответы (1)


Да вроде. Можно имитировать eval() Javascript в Apex, вызвав вызов метода executeAnonymous API.

Есть два распространенных способа получить ответ от executeAnonymous.

  1. Создайте преднамеренное исключение в конце выполнения и включите ответ. Кевин описывает этот подход в EVAL() в Apex. Безопасная динамическая оценка кода на платформе Salesforce1.
  2. Я использовал вариант этого подхода, но вернул ответ через журнал отладки, а не преднамеренное исключение. См. добавление поддержки Eval() в Apex. .

Используя мой пример, Apex будет выглядеть примерно так:

public string var = soapSforceCom200608Apex.evalString(
                'String var1=\'Some text\'; System.debug(LoggingLevel.Error, var1);');

Возможно, вам не удастся выполнить вызов во время инициализации члена или в конструкторе.

Между прочим, сайт Salesforce Stackexchange — отличное место, где можно задать конкретные вопросы о Salesforce.

person Daniel Ballinger    schedule 27.11.2014