綁定是一組鍵/值對,鍵必須是非空的非空字符串。
Java Bindings是Bindings接口的一個(gè)實(shí)例。
SimpleBindings類是Bindings接口的一個(gè)實(shí)現(xiàn)。
Bindings接口繼承了 Map< String,Object>
接口。
綁定是一個(gè)映射,限制其鍵必須是非空的非空字符串。
import javax.script.Bindings; import javax.script.SimpleBindings; public class Main { public static void main(String[] args) { Bindings params = new SimpleBindings(); params.put("stringKey", "Hello"); params.put("valueKey", 2015); Object msg = params.get("stringKey"); Object year = params.get("valueKey"); System.out.println("stringKey" + msg); System.out.println("valueKey = " + year); params.remove("valueKey"); year = params.get("valueKey"); boolean containsYear = params.containsKey("valueKey"); System.out.println("valueKey = " + year); System.out.println("params contains year = " + containsYear); } }
上面的代碼生成以下結(jié)果。
要將參數(shù)從Java代碼傳遞到腳本引擎,請使用ScriptEngine接口中的createBindings()方法,該方法返回Bindings接口的實(shí)例。
import javax.script.Bindings; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Main { public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); Bindings params = engine.createBindings(); params.put("stringKey", "Hello"); params.put("valueKey", 2015); Object msg = params.get("stringKey"); Object year = params.get("valueKey"); System.out.println("stringKey" + msg); System.out.println("valueKey = " + year); params.remove("valueKey"); year = params.get("valueKey"); boolean containsYear = params.containsKey("valueKey"); System.out.println("valueKey = " + year); System.out.println("params contains year = " + containsYear); } }
上面的代碼生成以下結(jié)果。
通常,引擎范圍Bindings中的鍵表示腳本變量。
下表列出了具有特殊含義的保留鍵。
鍵 | 常量 | 含義 |
---|---|---|
"javax.script.argv" | ScriptEngine.ARGV | 傳遞Object的數(shù)組 |
"javax.script.engine" | ScriptEngine.ENGINE | 腳本引擎的名稱 |
"javax.script.engine_version" | ScriptEngine.ENGINE_VERSION | 腳本引擎的版本 |
"javax.script.filename" | ScriptEngine.FILENAME | 傳遞文件的名稱 |
"javax.script.language" | ScriptEngine.LANGUAGE | 語言的名稱 |
"javax.script.language_version" | ScriptEngine.LANGUAGE_VERSION | 引擎支持的腳本語言的版本 |
"javax.script.name" | ScriptEngine.NAME | 腳本語言的短名稱 |
更多建議: