0

String在 GWT 项目中传递给 Java 方法时遇到问题:

public final native String waveIt()/*-{
    var instance = this;
    var data = $wnd.Waverecorder.data();
    var strData = data.toString();
    var arr = strData.split(',');
    for (var i = 0; i < arr.length; i++) {
        var data = arr[i];
        console.log(data);
        instance.@com.mycode.wave.showcase.client.Showcase::updateWave(Ljava/lang/String;)(data.toString());
    }
}-*/;

从 Chrome/Firefox 的控制台日志看,我可以看到我得到了正确的数据(这是我得到的确切日志):

-0.00006103515625
-0.00006103515625
-0.00006103515625
-0.05072021484375
-0.553833007812
 (more data omitted)

当 GWT java 方法接收到它时,data它是空的。可能是什么原因?

4

2 回答 2

0

你是什​​么意思:

当 GWT java 方法接收到数据时,它是空的。

您是在谈论waveIt()应该返回的字符串吗?

错误可能returnwaveIt().

于 2012-10-28T13:22:44.117 回答
0
  1. 这个方法应该是无效的,因为你不返回一个字符串 - 你从它调用一个 Java 方法。

  2. 查看您的代码,您不需要 var instance = this; 你可以删除实例。在@com 之前。

  3. 您声明 var data 两次:循环前和循环内。您可以使用 arr[i] 调用它,而不是使用 data.toString() 调用您的 Java 方法。

于 2012-10-28T17:35:12.573 回答