1

我试图读取 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 编译器自己生成的函数并将其转储到变量上。这有什么问题?就像我说的,官方文档中有一个非常相似的例子,所以应该是这样。提前致谢。

4

1 回答 1

4

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

所以改变这个

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

对此

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

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

于 2011-11-21T11:10:08.130 回答