java中實現javascript中eval的方法
由于項目需要,需要做一些類似javascript中eval的方法的計算。找到beanshell感覺很好用,跟大家分享!
請參考beanshell: http://www.beanshell.org
以下是demo:
/**
? * gf測試宏計算
? * @return
? */
?public void testBshInterpreter(){
??Interpreter interpreter= new Interpreter();
??//String bStr="(100>50 && 100<101)";
??try {
?? //1
???interpreter.set("add", interpreter.eval("(100+101)"));
???System.out.println(interpreter.get("add"));
???interpreter.set("boolean", interpreter.eval("(100>101)"));
???System.out.println(interpreter.get("boolean"));
???//2
???Interpreter i = new Interpreter(); // Construct an interpreter
???i.set("foo", 5); // Set variables
???i.set("date", new Date() );?
???Date date = (Date)
???i.get("date"); // retrieve a variable
???// Eval a statement and get the result
???i.eval("bar = foo*10");?
???System.out.println( i.get("bar") );?
??} catch (EvalError e) {
???e.printStackTrace();
??}
??
?}