如何将类类型传递给GWT中的JSNI代码?

时间:2012-05-26 03:43:58

标签: gwt jsni

我正在包装JS库,一个方法将类/原型作为参数。即:

installPlugin(Prototype)

此方法的包装JSNI函数如何显示?

public final void native installPlugin(Class<?> clazz) /*-{
    this.installPlugin(clazz);
}-*/;

这不正确,但与我想要达到的目标不同。

2 个答案:

答案 0 :(得分:2)

这是不可能的。在GWT中,对象知道它们的类(由getClass()返回)但Class实例没有对允许创建该类实例的构造函数/原型的引用。

如果您可以传递该类的实例,则应该只能使用obj.prototype。但它在DevMode中不起作用,其中Java对象在传递给JSNI时是不透明句柄

答案 1 :(得分:0)

您的原型应该具有.toJs()方法,该方法将其转换为JavaScriptObject类型。传递它而不是Java Prototype。