考虑以下方法调用:
$obj.get('PARAM');
其中'PARAM'
是静态字符串,即常量。
理想情况下,MVEL应该将参数编译为LITERAL类型,而不应在执行期间重新编译。
我们正在使用
MVEL.compileExpression("$obj.get('PARAM')", parserContext)
因此,编译后,我们希望它类似于下面的内容
$obj.get(Literal<PARAM>)
但是,我们发现,即使方法参数已被重新编译,该方法参数也不会被视为LITERAL。
我们不希望MVEL在执行过程中(即调用'MVEL.executeExpression(...)
'时重新编译它。
有没有人观察到这一点或有任何想法如何跳过执行过程中的重新编译或可以设置任何避免这种情况的属性?
非常感谢您对此提供的任何帮助!