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

标签 javascript gwt return jsni

我试图读取 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/

相关文章:

html - GWT 标签对齐和 CSS

c - void类型函数如何在没有指针的情况下将值返回到C中的局部变量?

c - 返回多维数组的函数

javascript - 如何在javascript中使用空格和 "|"分割字符串

javascript - 在其他 float <li> 之前插入(使用 AJAX) float <li> 元素而不移动它们

Javascript 文件名加密和引用

javascript - 如何下载、重命名和保存用户输入生成的图像

gwt - 如何将 GWT 应用程序部署到 tomcat

java - 如何构建 GWT 加载对话框?

java - JDBC SQLite : Retrieval Operation - loops without stopping? |