我正在尝试定义一个通用公式,例如“ a + b”并使用它来传递参数。任何想法如何使这件事起作用?
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String Formula="a+b";
engine.put("Formula", Formula);
engine.put("a", "3");
engine.put("b", "4");
res = engine.eval("r = Formula").toString();
System.out.println(res);
上面代码的输出是“ a + b”,而不是预期的7。
最佳答案
要将变量名称与值绑定,请使用“绑定”。
我认为以下代码可以解决您的问题:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String formula="a+b";
Bindings bindings = engine.createBindings();
bindings.put("a", 3);
bindings.put("b", 4);
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
Object res = engine.eval(formula);
System.out.println(res.toString());
关于java - 通过Java代码将参数传递给JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29869195/