j2v8:创建绑定对象的新实例

j2v8: creating new instance of binded object

我们的团队目前正在考虑使用哪个 JavaScript 引擎桥。我们正在 LiquidCore and J2V8 之间进行选择。 我的问题是关于 j2v8。据推测,我必须在 JavaScript 中创建一些 java class 的多个实例,如何使用标准实例化注释(new ClassName())在 j2v8 中实现这一点?在 liquidcore 中,您可以绑定一些 class,扩展 JSFuction,使用超级构造函数:

JSFunction(JSContext ctx, final String methodName, final Class<?extends JSObject> instanceClass)

并使用所需的 class 名称注册 属性,如下所示:

jsBaseContext.getJsContext().property("WebSocket", this);

然后调用:

var x = new WebSocket();

java 方法 methodName 将触发,我们将在其中获得新的 instanceClass as JSValue 对象作为参数,已经绑定并准备好在 java 脚本中使用。

既然没人要讨论这个话题,我就自己回答吧。 此功能当前未考虑添加到官方 J2V8 版本中,但是 Mizumi's pull request 上有一个分支。所以,看看你是否遇到过类似的问题。