我有一个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不是 功能
我的代码有什么问题?
答案 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中的包