zoukankan      html  css  js  c++  java
  • Java之"Mozilla Rhino"引擎(二)

    在Java中使用Rhino, 能让你使用类似Groovy, ECMAScript...等等之类的不同动态脚本语言, 其中值得推荐的是ECMAScript, 它是Rhino的默认实现, 同时也在JDK1.6中集成了.
    使用ScriptEngine的时候, 还有二个接口, 看似不相关, 却是非常有用. 一个是Invocable, 一个是Compilable, 前者能从Java回调ECMAScript中的Function或者object, 后者能将ECMAScript脚本编译, 从而提升3~4倍性能, 这个系数不是固定的, 会随脚本的复杂度成正比.
    在写ECMAScript的时候,
    (1)存在ScriptContext中的attribute, 可以直接通过name引用.
    (2)对于JavaBean的setter/getter可以直接引用property.
    (3)对于类, 可以省略new运算符以及package.
    但要注意, 像Map, List, Array这些必须非JavaBean的对象在Script中必须使用get(), put(), add()之类的方法来取存元素. 这让人很不爽, 不能像EL或者FreeMarker之类的语法. 但也没什么, 直接引用方法倒更像Java的语法. 
    public static void main(String[] args) throws ScriptException {
      Map<String, Object> params = new HashMap<String, Object>();
      params.put("test", "这是一个小小的测试...");
      Bindings bindings = new SimpleBindings();
      bindings.put("params", params);
      Object result = engine.eval("println(params.get('test'));", bindings);

      System.out.println(result);
    }

  • 相关阅读:
    UPDATE 时主键冲突引发的思考【转】
    MySQL Sandbox安装使用
    主从复制1062错误解决方法
    InnoDB log file 设置多大合适?
    EXPLAIN 命令详解
    【机器学习】ID3算法构建决策树
    连续属性离散化处理
    【机器学习】决策树基础知识
    【机器学习】模型评估与选择
    【机器学习】单层感知器
  • 原文地址:https://www.cnblogs.com/zolo/p/5849327.html
Copyright © 2011-2022 走看看