2012-10-28 53 views
0

我有問題傳遞String Java方法在我的GWT項目:從JSNI到Java傳遞字符串 - GWT

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); 
     [email protected]::updateWave(Ljava/lang/String;)(data.toString()); 
    } 
}-*/; 

將Chrome/Firefox瀏覽器的控制檯日誌看我可以看到,我得到正確的數據(這是確切的日誌我得到):

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

當GWT Java方法收到data它是空的。可能是什麼原因?

+0

data.toString()?嘗試僅傳遞'data'作爲參數 –

回答

0
  1. 該方法應該是無效的,因爲你不返回一個字符串 - 你可以從中調用Java方法。

  2. 看着你的代碼,你不需要var instance = this;你可以刪除實例。在@com之前。

  3. 您聲明var數據兩次:在循環之前和循環內部。你可以用arr [i]來調用它,而不是用data.toString()來調用你的Java方法。

0

你說的意思是:

當GWT Java方法獲得它是空的數據。

你說的是waveIt()應該返回的字符串嗎?

該錯誤可能是waveIt()中沒有return陳述。