Java 脚本绑定

2018-03-18 13:17 更新

Java脚本教程 - Java脚本绑定


绑定是一组键/值对,键必须是非空的非空字符串。

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);
  }
}

上面的代码生成以下结果。


例2

要将参数从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脚本语言的短名称
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号