我在将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
时,它是空的。可能是什么原因?
答案 0 :(得分:0)
你是什么意思:
当GWT java方法收到数据时,它是空的。
您是在谈论waveIt()
应该返回的字符串吗?
错误可能是return
中没有waveIt()
声明。
答案 1 :(得分:0)
此方法应该是无效的,因为您不返回字符串 - 您可以从中调用Java方法。
查看代码,您不需要var instance = this;你可以删除实例。在@com。
您声明var数据两次:在循环之前和循环内部。您可以使用arr [i]调用它,而不是使用data.toString()调用Java方法。