代码之家  ›  专栏  ›  技术社区  ›  sproketboy

如何在Java中指定自己的Rhino上下文?

  •  2
  • sproketboy  · 技术社区  · 16 年前

    我试图确保我的Rhino脚本(在java6下运行)是严格的,这样如果脚本开发人员拼写错误了一个表达式,我就希望抛出一个异常。目前的情况是表达式的计算结果只是“未定义”。

    https://developer.mozilla.org/en/New_in_Rhino_1.6R6 有一些特性可以在上下文中启用严格检查。我找不到这样一个有效的例子。

    到目前为止,我所做的是编写一个类来扩展ContextFactory,然后重写hasFeature方法。

    public class ScriptContextFactory extends ContextFactory {
    
        protected boolean hasFeature(Context context, int featureIndex) {
    
            switch (featureIndex) {
                case Context.FEATURE_STRICT_EVAL:
                    return true;
    
                case Context.FEATURE_STRICT_VARS:
                    return true;
            }
    
            return super.hasFeature(context, featureIndex);
        }
      }
    

    然后大体上我将我的设置为默认值。

    ContextFactory.initGlobal(new ScriptContextFactory());
    

    有什么关于这个工作原理的想法或例子吗?

    短暂性脑缺血发作

    1 回复  |  直到 16 年前
        1
  •  2
  •   Tahir Akhtar    16 年前

    如果你正在做 Context.enter() 打电话之前 initGlobal()

    推荐文章