2010-03-11 28 views
2

我正在將GWT項目從GWT 1.7.1升級到當前最新版本2.0.3。看來,新的GWT爆發String.split(字符串正則表達式)方法 - 我得到的JavaScript端以下錯誤:GWT 2.0.3中的String.split()方法錯誤

this$static is undefined 

這發生在這一行我.nocache.js文件:

if (maxMatch == 0 && this$static.length > 0) { 

...恰好是在Javascript中等價的字符串拆分方法的一部分。

除了做我自己的字符串分裂之外,是否有這種治療方法?

回答

5

可能的解決方法是編寫,圍繞標準的JavaScript split函數封裝了JSNI方法,這樣的事情(注:代碼沒有測試:))

public static final native String[] split(String string, String separator) /*-{ 
    return string.split(separator); 
}-*/; 

最接近的事對GWT Issues listIssue 3071,但我會堅持使用JSNI(就像我堅持使用JSNI進行正則表達式一樣)。

+1

謝謝!這可以起作用,並且稍微改正返回參數必須是String []而不是JsArrayString。 – Domchi 2010-03-12 14:16:15

+0

嘿,謝謝你回報 - 我修正了上面的代碼。我猜JSNI不是那種「愚蠢的」(JsArray *類通常與JavaScript Overlay Objects一起使用,所以我認爲這也是這種情況)。 – 2010-03-12 18:13:55

+0

這些似乎是從仿真庫中遺漏的奇怪的東西 – NimChimpsky 2017-06-29 04:17:42