由于项目需要,需要做一些类似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();
}
}