2012-04-10 7 views
0

Ich versuche, eine generische Methode zu machen, um einige Daten mit RequestFactory zu erhalten. Ich habe eine Methode getData, die Feuer auf eine Anfrage ausführt, um eine Liste von Elementen (Generika) zu bekommen Das Problem ist, wenn ich versuche, die zurückgegebene Liste arg0 zu meinem ListDataProvider zuweisen Ich erhalte einen Typfehler.GWT: RequestFactory und ListDataProvider Typ Fehler

private ListDataProvider<T> dataProvider; 
. 
. 
. 
. 
public <T> void getData(Request<List<T>> specificRequest) { 
       specificRequest.fire(new Receiver<List<T>>() { 
         @Override 
         public void onSuccess(List<T> arg0) { 
           assignDataProvider(arg0); 
         } 
       }); 
       return ; 
} 

public <T> void assignDataProvider(List<T> arg0) { 
       this.dataProvider.setList(arg0); 
       //The method setList(List<T>) in the type ListDataProvider<T> is not 
applicable for the arguments (List<T>) 
       this.dataProvider= new ListDataProvider<T>(arg0); 
       //Type mismatch: cannot convert from 
com.google.gwt.view.client.ListDataProvider<T> to 
com.google.gwt.view.client.ListDataProvider<T> 
} 

Wie kann ich die Daten, die ich von arg0 bekommen verwenden, so kann ich es meine ListDataProvider zuweisen?

+0

Welchen Fehler bekommen Sie? Stellen Sie immer eine Fehler-Stack-Ablaufverfolgung mit Code bereit. –

+0

Der Fehler lautet: public void assignDataProvider (Liste arg0) { this.dataProvider.setList (arg0); this.dataProvider = neuer ListDataProvider (arg0); } wenn ich verwende: this.dataProvider.setList (arg0); Verfahren Setlist (List ) in der Art ListDataProvider ist nicht anwendbar für die Argumente (List ) wenn ich benutze: this.dataProvider = new ListDataProvider (arg0); Typenkonflikt: Konvertierung von com.google.gwt.view.client.ListDataProvider zu com.google.gwt.view.client.ListDataProvider jmbz

Antwort

0

Wenn Sie keinen Fehler bei der Deklaration von dataProvider erhalten, wird Typ T als Parameter in einer Klassendeklaration definiert.
Wenn ja, sollten Sie aus Methodendeklarationen entfernen.

Viel Glück!

+0

Danke ich die aus der Methoden Deklaration entfernt und es funktionierte – jmbz