0

StringGWT プロジェクトで 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
  1. 文字列を返さないため、このメソッドは無効にする必要があります。文字列から Java メソッドを呼び出します。

  2. コードを見ると、 var instance = this; は必要ありません。インスタンスを削除できます。@comの前に。

  3. ループの前とループの中で var データを 2 回宣言します。Java メソッドを data.toString() で呼び出す代わりに、arr[i] で呼び出すことができます。

于 2012-10-28T17:35:12.573 に答える
0

どういう意味:

GWT Java メソッドがデータを受け取ったとき、データは空です。

waveIt()返すべき文字列について話しているのですか?

バグは、 にreturnステートメントがない可能性がありwaveIt()ます。

于 2012-10-28T13:22:44.117 に答える