我对 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)包括 get
、has
和 put
等方法,大致对应于 JavaScript 中的 myObject.string1
、myObject.hasOwnProperty("string1")
和 myObject.string1 = "Hello"
。 ScriptableObject
类添加了一些其他有用的方法来定义属性等。
关于java - Rhino - 将 javascript 对象传递给 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563949/