我正在将GWT项目从GWT 1.7.1升级到目前最新的2.0.3版本.似乎新GWT打破了String.split(String regex)方法 - 我在Javascript端遇到以下错误:
this$static is undefined
Run Code Online (Sandbox Code Playgroud)
这发生在我的.nocache.js文件的这一行:
if (maxMatch == 0 && this$static.length > 0) {
Run Code Online (Sandbox Code Playgroud)
...恰好是Javascript中等效的String split方法的一部分.
除了自己进行字符串分割之外,还有治疗方法吗?
一个可能的解决方法是编写一个包含标准JavaScript split
函数的JSNI方法,如下所示(注意:代码未经过测试:))
public static final native String[] split(String string, String separator) /*-{
return string.split(separator);
}-*/;
Run Code Online (Sandbox Code Playgroud)
GWT问题列表中最接近的是问题3071,但我只是坚持使用JSNI(就像我坚持用正则表达式的JSNI一样).