gpt4 book ai didi

java - 使用内置 JavaScript 引擎时自动为未定义的方法添加前缀 `Math.`?

转载 作者:行者123 更新时间:2023-11-29 05:31:19 25 4
gpt4 key购买 nike

为了计算字符串中给出的数学表达式,我使用了内置的 JavaScript 引擎,如 this answer 中所述。 :

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
double result = (Double) engine.eval("Math.min(2, 4)");
// result: 2.0

如果属于 Math 的每个函数(minmaxpow.. .) 可以在没有 Math. 前缀的情况下编写,以减轻表达式:

double result = (Double) engine.eval("min(2, 4)");

现在,我得到以下异常:

sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "min" is not defined (<Unknown source>#1) in <Unknown source> at line number 1

有没有办法完成这项改进?例如,每次异常被捕获时,尝试用 Math. 作为 undefined reference 的前缀并重新计算表达式?我一直无法找到如何继续。

我尝试使用 engine.put("min", ...) 方法,但没有成功。

最佳答案

一个选择是做类似的事情

engine.eval("min = Math.min");
...

double result = (Double) engine.eval("min(2, 4)");

关于java - 使用内置 JavaScript 引擎时自动为未定义的方法添加前缀 `Math.`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com