簡體   English   中英

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

[英]How can I specify my own Rhino context in Java?

我試圖確保我的Rhino腳本(在Java 6下運行)嚴格,以便如果腳本開發人員拼錯了一個表達式,我希望拋出一個異常。 當前發生的情況是該表達式僅計算為“未定義”。

根據Mozilla org 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);
    }
  }

然后在Main中將我的設置為默認值。

ContextFactory.initGlobal(new ScriptContextFactory());

我得到了一個非法的州例外。 :(

關於如何工作的任何想法或樣本?

TIA

如果在調用initGlobal()之前正在執行Context.enter() ,請嘗試反轉順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM