写程序的时候有个交互式的shell是非常方便的,ruby的irb,或者python,一边开着ide写代码,一边开着这样的交互窗口,有啥方法不记得用法,可以马上调试一下,忘记了啥方法可以用映射看一下有啥方法,我觉得比查手册快捷方便很多。
但java这种静态语言能不能有这样的工具,我不知道,但或许借助mvel或者类似这些可以实现,现在有jruby,或者jyphton这类应该也有类似的吧。
不过说回来mvel可以把一些变动较大的逻辑从代码中分离开来,而且它跟java又有如此精密的联系,是相当赞的。可是我还是认为他的终点应该是灭亡,想jruby,jpython之类肯定会取而代之。
贴段hello world的代码
package kk.mvel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.codec.digest.DigestUtils;
import org.mvel.MVEL;
public class Md5 {
public static void main(String args[]){
String exp = "a = 12; org.apache.commons.codec.digest.DigestUtils.md5Hex(a);";
Serializable compiled = MVEL.compileExpression(exp);
Map vars = new HashMap();
List ls = new ArrayList();
ls.add("a");
ls.add("a");
ls.add("a");
ls.size();
vars.put("list", ls);
//vars.put("digest_utils", DigestUtils.class);
String ret = MVEL.executeExpression(compiled, vars).toString();
System.out.println(ret);
}
}