2010-03-11 4 views
2

Je suis en train de mettre à jour un projet GWT de GWT 1.7.1 vers la version 2.0.3 la plus récente. Il semble que le nouveau GWT cassé String.split (String regex) - Je reçois l'erreur suivante du côté Javascript:String.split() bug de méthode dans GWT 2.0.3

this$static is undefined 

Cela se produit dans cette ligne de mon fichier .nocache.js:

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

... qui se trouve être une partie de la méthode String split équivalente en Javascript.

Y at-il un remède pour cela, en dehors de faire moi-même la fente?

Répondre

5

Une solution possible est d'écrire une méthode JSNI qui entoure la fonction JavaScript standard split, quelque chose comme ceci (note: le code non testé :))

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

La chose la plus proche sur le GWT Issues list est Issue 3071, mais je voudrais juste coller avec JSNI sur celui-ci (juste comme je colle avec JSNI pour les expressions régulières).

+1

Merci! Cela fonctionne, avec une correction mineure que l'argument return doit être String [] au lieu de JsArrayString. – Domchi

+0

Hé, merci d'avoir rendu compte - J'ai corrigé le code ci-dessus. Je suppose que JSNI n'est pas si "stupide" (les classes JsArray * sont généralement utilisées avec JavaScript Overlay Objects, donc j'ai pensé que ce serait aussi le cas ici). –

+0

cela semble une chose si étrange à manquer dans la bibliothèque d'émulation – NimChimpsky