GWT JsInterop本机类问题

时间:2016-05-26 22:52:54

标签: javascript java gwt

我有一个JsInterop问题,同时包含一些javascript代码。

JavaScript类似于

com = { gwidgets: {} };
com.gwidgets.Spring = function () {
        this.name = "hello";    
};

com.gwidgets.Spring.prototype.getName = function () {return "test";
};

JsInterop类是:

package com.gwidgets.leaflet;

import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsType;

@JsType(isNative=true)
public class Spring {

    @JsMethod
    public native String getName();
}

但是,当我实例化该类并尝试调用getName()方法时,我收到错误:

  

leafletwrapper-0.js:1183 Uncaught TypeError:spring.getName不是   功能

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

根据你的javascript,一个解决方案可能是将命名空间添加到注释

import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsType;

@JsType(isNative=true, namespace = "com.gwidgets")
public class Spring {

    @JsMethod
    public native String getName();
}

或者将java类Spring移动到包com.gwidgets(与javascript相同)

或者更改javascript的命名空间以匹配类Spring中的包