Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ClassCastException-无法将JavaScriptObject转换为java.lang.String_Javascript_Gwt - Fatal编程技术网

ClassCastException-无法将JavaScriptObject转换为java.lang.String

ClassCastException-无法将JavaScriptObject转换为java.lang.String,javascript,gwt,Javascript,Gwt,我的GWT应用程序正在引发此异常: Caused by: java.lang.ClassCastException: com.google.gwt.core.client.JavaScriptObject$ cannot be cast to java.lang.String 通过JSNI获取此函数的字符串响应时: public final native String data()/*-{ return $wnd.getdata(); }-*/; } 下面是Javascript代码:

我的GWT应用程序正在引发此异常:

Caused by: java.lang.ClassCastException: com.google.gwt.core.client.JavaScriptObject$ cannot be cast to java.lang.String
通过JSNI获取此函数的字符串响应时:

public final native String data()/*-{
    return $wnd.getdata();
}-*/;
}

下面是Javascript代码:

  function getdata(){
    var data = MyObject.data();
    console.log(data);
    return data;
  }
我正在记录Firebug的数据输出,下面是输出(用于检查js函数是否实际返回了一些内容):

-0.00030517578125,0.00006103515625,0.00115966796875,0.00146484375,-0.00091552734375,-0.000946044921875,-0.001983642578125,-0.0039978027347375,-0.005126953125,-0.003601074218775,-.0.0038984375,--0.004119873046875,--0.00433349696975,--0.0023193359375,-.0008544921875,--0.0034786325,-,--0.00347467375,-,-,-0.005279541015625,-0.006072998046875


一个简单的解决方案可能是
$wnd.getdata().toString()
但是也许你应该试试
typeof$wnd.getdata()
看看这个类型到底是什么——也许它是潜伏在其他地方的一个bug。

一个简单的解决方案可能是
$wnd.getdata().toString()
但是也许你应该试试
typeof$wnd.getdata()
看看这个类型到底是什么——也许它是潜伏在其他地方的一个bug。

它奇怪的typeof显示类型是“object”,来自MyObject函数data:function(){return this.flashInterface().data().split(;)},但是Actionscript函数的定义如下:protected function data():String{…}Actionscript是返回真实的JavaScript字符串还是返回具有相同API的对象,因此行为类似于JavaScript字符串?因此我假设返回值最终是一个字符串,除了console.log显示这是一个逗号分隔的浮点字符串之外,似乎字符串是从MyObject函数数据中获取输出的方式。奇怪的typeof显示类型是“object”:function(){return this.flashInterface().data().split(;”;);},但是Actionscript函数的定义如下:protected function data():String{…}Actionscript是返回真实的JavaScript字符串还是返回具有相同API的对象,因此行为类似于JavaScript字符串?因此我假设返回值最终是一个字符串,除了console.log显示这是一个逗号分隔的浮点字符串之外,字符串似乎是获取输出的方式