MVEL перекомпилирует аргументы метода - PullRequest
0 голосов
/ 04 сентября 2018

Рассмотрим вызов метода ниже:

$obj.get('PARAM');

где 'PARAM' - статическая строка, то есть константа.

В идеале, MVEL должен компилировать аргумент как тип LITERAL, а не перекомпилировать его во время выполнения.

Мы используем

MVEL.compileExpression("$obj.get('PARAM')", parserContext)

Итак, после компиляции мы ожидали, что это будет что-то похожее на ниже

$obj.get(Literal<PARAM>)

Но мы заметили, что аргумент метода не обрабатывается как LITERAL, даже если он перекомпилирован и перекомпилирован.

Мы не хотим, чтобы MVEL перекомпилировал его во время выполнения, т.е. когда вызывается 'MVEL.executeExpression(...)'.

Кто-нибудь наблюдал это или знает, как можно пропустить повторную компиляцию во время выполнения или какое-либо свойство, которое можно установить, чтобы избежать этого?

Буду очень признателен за любую помощь в этом!

...