¿Necesitas ejecutar una fórmula recogida de un campo de base de datos? ¿o evaluar un cálculo o una expresión conformada en una variable String en Java?
Es posible y puedes establecer el valor de cada una de las variables que figuren en la expresión, como en el siguiente ejemplo:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Interprete {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine interprete = manager.getEngineByName("js");
try {
String formula = "X*Y/100";
interprete.put("X", 5);
interprete.put("Y", 80);
System.out.println("Resultado = "+interprete.eval(formula));
} catch(ScriptException se) {
se.printStackTrace();
}
}
}
Como ves, a la expresión le puedes añadir variables que después defines su valor con constantes o variables de Java y se obtiene el resultado ejecutando la función eval()
de la instancia de ScriptEngine.
Para dar una vuelta de tuerca más, si te has fijado en el constructor de este mismo objeto se utiliza la función getEngineByName()
de ScriptEngineManager. En este caso, el parámetro ha sido js de Javascript.
Has leído bien anónimo lector, se puede indicar lenguajes de programación: Javascript, Python, C, etc. Interesante, ¿verdad?