Java 绑定是一种技术,它可以将 Java 对象与其他类型的对象进行绑定,以便在 Java 应用程序中使用。Java 绑定可以帮助开发人员更快地开发应用程序,并且可以提高应用程序的性能。
Java 绑定的主要目的是使 Java 应用程序能够访问其他语言或平台上的对象。例如,Java 绑定可以使 Java 应用程序能够访问 C++ 或 C# 中的对象,也可以使 Java 应用程序能够访问 Windows 或 Linux 上的对象。
Java 绑定通常分为三个步骤:创建、注册和使用。首先,开发人员需要创建一个 Java 类来表示要连接的对象。然后,开发人员需要注册该 Java 类,以便在运行时将其映射到相应的原生对象。最后,开发人员需要使用该 Java 类来连接原生对象并执行相关操作。
public class MyClass { public static void main(String[] args) { // Create a new instance of the native object. NativeObject obj = new NativeObject(); // Register the native object with the JVM. NativeObject.register(obj); // Use the native object in your application. obj.doSomething(); } }
绑定是一组键/值对,键必须是非空的非空字符串。
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 | 脚本语言的短名称 |
Java脚本教程 - Java编译脚本脚本引擎允许以Java类的形式编译脚本,然后重复执行它。以下代码检查脚本引擎是否实现了可编译接口:...
Java脚本教程 -Java脚本字符串字符串类型表示Unicode字符序列。用双引号或单引号括起来的字符序列是字符串文字。字符数是字符串...
Java脚本教程 -Java脚本参数Java Scripting API允许我们将参数从Java应用程序传递到脚本引擎,反之亦然。将参数从Java代码传递到...
Java Lambda变量捕获lambda表达式可以访问最终局部变量或局部非最终初始化只有一次的变量。例子下面的代码显示我们可以访问和使...