java中实现javascript中eval的方法

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

你可能感兴趣的:(java中实现javascript中eval的方法)