Je fais un programme dans GWT. Voici l'extrait où Im ayant problèmeRéférence à une variable non-finale dans une classe interne
private String[] populateRSSData() {
1==>> String[] data = null;
try {
new RequestBuilder(RequestBuilder.GET,
"../database.php?action=populaterss").sendRequest(null,
new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
2==>> data=response.getText().split("~");
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert(exception.getMessage());
}
});
} catch (RequestException e) {
Window.alert(e.getMessage());
}
return data;
}
Maintenant, le problème se pose que je reçois une erreur que la variable 1==>>
data
doit être déclarée final
. Mais si je déclare comme final
alors je ne peux pas stocker les données dans 2==>>
L'erreur que je reçois
Cannot refer to a non-final variable data inside an inner class defined in a different method RSS_Manager.java
S'il vous plaît suggèrent
+1 Tahir est droite.Votre méthode renverra toujours null parce que le résultat de l'appel asynchrone n'a pas encore été assigné ... Faites ce que vous devez faire avec des données dans onResponseReceived();) – Bogdan
dint pensez de cette perspective. Merci Tahir, j'ai besoin de refaire la structure – Sam