java中實(shí)現(xiàn)javascript中eval的方法
由于項(xiàng)目需要,需要做一些類似javascript中eval的方法的計(jì)算。找到beanshell感覺(jué)很好用,跟大家分享!
請(qǐng)參考beanshell: http://www.beanshell.org
以下是demo:
/**
? * gf測(cè)試宏計(jì)算
? * @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();
??}
??
?}
posted on 2006-12-05 18:57 風(fēng) 閱讀(4772) 評(píng)論(0) 編輯 收藏