/ / Pasa el parámetro a JavaScript a través del código Java - java

Pasar el parámetro a JavaScript a través del código Java - java

Intento definir una Fórmula genérica, por ejemplo "a + b" y usarla para pasar parámetros. ¿Alguna idea de cómo hacer que esto funcione?

    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);

La salida del código anterior es "a + b" y no 7 como se esperaba.

Respuestas

1 para la respuesta № 1

Para enlazar nombres de variable con valores, use enlaces.

Creo que el siguiente código resuelve tu pregunta:

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());