从GWT上的手写JS中获取Java方法返回值

Getting Java method return value from handwritten JS on GWT

本文关键字:获取 Java 方法 返回值 JS GWT      更新时间:2023-09-26

我试图读取Java方法的返回值并将其保存为JS变量。根据文档,应该这样做:

返回值的原生Java方法:

static public double getValue() {
    return 21.0;
}

创建一个从手写JS调用原生Java的引用:

$wnd.showValue=function() {
    val=$entry(@whateverpackage.thisclass::getValue());
    alert("Value: "+val);
}
最后,在纯JS中:
showValue();

警告框中显示的输出如下:

Value: function(){try{return hh(c,this,arguments)}catch(b){throw b}}

我猜不是得到返回值,而是得到GWT编译器自己产生的函数,并将其转储到变量上。这有什么不对吗?就像我说的,在官方文档中有一个非常相似的例子,所以这应该是方法。

您必须在函数引用后添加一对额外的括号。第一对包含函数签名(描述参数类型)。现在不是执行函数而是将实际函数传递给$entry()

那么改变这个

val=$entry(@whateverpackage.thisclass::getValue());

var val = $entry(@whateverpackage.thisclass::getValue()());

顺便说一句,我添加了var关键字,以防止任何潜在的范围冲突。