【发布时间】:2012-08-19 23:04:48
【问题描述】:
我正在使用 Rhino 来评估 js 表达式,方法是将所有可能的变量值放在作用域中并评估一个匿名函数。然而,表达式相当简单,为了性能,我只想输入表达式中使用的值。
代码示例:
Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects(null);
// Build javascript anonymous function
String script = "(function () {" ;
for (String key : values.keySet()) {
ScriptableObject.putProperty(scope, key, values.get(key));
}
script += "return " + expression + ";})();";
Object result = cx.evaluateString(scope, script, "<cmd>", 1, null);
我想从作为变量名的表达式中获取所有标记。
例如,如果表达式是
(V1ND < 0 ? Math.abs(V1ND) : 0)
它将返回V1ND。
【问题讨论】:
标签: java javascript rhino