手机版欢乐生肖APP下载

CodeForge 400电话 客服电话 4006316121
手机版欢乐生肖APP下载 » 源代码 » groovy表达式解析

groovy表达式解析

ophelia_fupx
发布于2016-12-09 17:57:01
源码作者
浏览次数:
下载次数:0
下载所需积分:1 
源码分类 Tags:
源码分类 所属分类:
java,shelljava,shell AllAll

分享有礼! 》

  • 请点击右侧的分享按钮,把本代码分享到各社交媒体。
  • 通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
  • 通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。

代码介绍

public class ExprSupport {
    
    private static final Object lock = new Object();
    private static final GroovyShell shell;
    private static Hashtable cache = new Hashtable();
    
    static {
        CompilerConfiguration cfg = new CompilerConfiguration();
        cfg.setScriptBaseClass(MyBasicScript.class.getName());
        shell = new GroovyShell(cfg);
    }
 
    public static Object parseExpr(String expr) {
        Script s = getScriptFromCache(expr);
        return s.run();
    }
 
    public static Object parseExpr(String expr, Map<?, ?> map) {
        Binding binding = new Binding(map);
        Script script = getScriptFromCache(expr);
        script.setBinding(binding);
        return script.run();
    }
 
    private static Script getScriptFromCache(String expr) {
        if (cache.contains(expr)) {
            return cache.get(expr);
        }
        synchronized (lock) {
            if (cache.contains(expr)) {
                return cache.get(expr);
            }
            Script script = shell.parse(expr);
            cache.put(expr, script);
            return script;
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        //
        Map row = new HashMap();
        row.put("id", 42);
        row.put("name", "");
         
        //带绑定数据参数的调用方式
        System.out.println(ExprSupport.parseExpr("nvl(id,0)", row));
        System.out.println(ExprSupport.parseExpr("nvl(name,'anonymous')", row));
         
        //不带绑定数据参数的调用方式,这个是groovy的内置能力
        //+、-、<、>、<=、>=、!=、||、&&、
        System.out.println(ExprSupport.parseExpr("1>2&&5>2"));
 
    }
}

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
名称 大小 修改日期

资源评论

(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
  • 1
  • 第1页
  • 共1页

groovy表达式解析 (1.31 kB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足,优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取CodeForge积分

您本次下载所消耗的积分将转交上传作者。

手机版欢乐生肖APP下载同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册

Switch to the English version?

No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的
欢乐生肖APP注册网址 欢乐生肖官方网站 欢乐生肖游戏 欢乐生肖官方APP 欢乐生肖官方网站 欢乐生肖游戏 欢乐生肖APP注册网址 欢乐生肖官方APP 欢乐生肖网址 欢乐生肖官方网站APP下载