绑定是一组键/值对,键必须是非空的非空字符串。
Java Bindings是Bindings接口的一个实例。
SimpleBindings类是Bindings接口的一个实现。
Bindings接口继承了 Map< String,Object>
接口。
绑定是一个映射,限制其键必须是非空的非空字符串。
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);
}
}
上面的代码生成以下结果。
要将参数从Java代码传递到脚本引擎,请使用ScriptEngine接口中的createBindings()方法,该方法返回Bindings接口的实例。
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);
}
}
上面的代码生成以下结果。
通常,引擎范围Bindings中的键表示脚本变量。
下表列出了具有特殊含义的保留键。
键 | 常量 | 含义 |
---|---|---|
“javax.script.argv” | ScriptEngine.ARGV | 传递Object的数组 |
“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 | 脚本语言的短名称 |
© 著作权归作者所有