java - Rhino - 将 javascript 对象传递给 java

标签 java javascript object rhino

我对 Rhino 很陌生,我的问题是如何实现以下目标,

假设我有一个 javascript 对象,它遵循如下所示的内容,我可以在 java 中使用它。

var myObject = new Object();
myObject.string1 = "Hello";
myObject.string2 = "World";
myObject.int1 = 1;

但是如果它是动态的,我该如何在 java 中使用它呢?对于例如如果您决定在 javascript 中动态向此对象添加更多成员。这可行吗?我的猜测是java中定义的类必须考虑所有可能的成员才能做到这一点?

希望我已经解释了我想要正确实现的目标。

最佳答案

当您在 Java 中访问 JavaScript 对象时,它们本质上都是同一个类:ScriptableObject,它实现了 Scriptable 接口(interface) (GitHub source) 。还有一些其他类用于函数和其他专用对象。

Scriptable 接口(interface)包括 gethasput 等方法,大致对应于 JavaScript 中的 myObject.string1myObject.hasOwnProperty("string1")myObject.string1 = "Hello"ScriptableObject 类添加了一些其他有用的方法来定义属性等。

关于java - Rhino - 将 javascript 对象传递给 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563949/

相关文章:

java - 在 Hibernate Multi-Tenancy 配置中禁用 Spring 数据源配置

Javascript - 将 byte 转换为 sbyte

javascript - Angular4 和 Webpack - 300kb(优化后)用于简单的 "hello world"应用程序?

javascript - 为什么 Pod 依赖管理器没有检测到安装所需的模块?

带循环的 Javascript 输出对象实例

python - 计算类和实例哈希

java - 无法运行简单的项目(Maven - Spring - Eclipse)

java - 我怎样才能减少这段代码的执行时间

java - 从日历中获取日期之前的 18 年

javascript - 使用 HTML 4.01 文档类型嵌入内容(iframe)?