我试图读取 Java 方法的返回值并将其保存到 JS 变量中。根据文档,这应该可以完成工作:
返回值的 native Java 方法:
static public double getValue() {
return 21.0;
}
创建引用以从手写 JS 调用 native 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 关键字以防止任何潜在的范围冲突。
关于javascript - 从GWT上的手写JS获取Java方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210583/