1
我有一个JSON转换为JNI覆盖类型的问题。 Java代码有下面的方法:GWT问题与长在Javascript JNI覆盖类型
long nr = 10l;
public Long getNr() {
return nr;
}
的JNI叠加类型是:
public final native Long getNr() /*-{
return this.nr;
}-*/;
我回避与所述覆盖型的长原语操作,因为编译器不允许它。官方文件称这是低效的,但它应该起作用。但是,我得到:
java.lang.IllegalArgumentException: Something other than a Java object was returned from JSNI method '@com.avaya.thunder.portal.client.shared.model.Customer::getNr1()': JS value of type int, expected java.lang.Object
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:178)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:271)
我正在使用GWT 2.2.0。
这是我做错了什么?这应该工作吗?任何帮助表示赞赏。 谢谢。
我现在明白,GWT编译器只能模拟java代码中的long,并且一旦我们拖拽JSNI级别,编译器就不会触及该代码。谢谢。 – Eugen 2011-05-28 20:38:47