Objekt in Fadenlauf Methode helfen Rückkehr ich eine Java-Klasse, die Thread
erstreckt, sieht es im Grunde wie folgt aus:Benötigen
public class HttpRequestDispatcher extends Thread {
private String url;
private String method; // GET or POST
private byte[] postData;
public HttpRequestDispatcher(String url, String method, byte[] postData) {
this.url = url;
this.method = method;
this.postData = postData;
}
public HttpRequestDispatcher(String url, String method) {
this.url = url;
this.method = method;
}
public void run() {
...
}
}
Ich brauche die run()
Methode ein ByteArrayOutputStream
oder ein String
zurückzukehren. Da es sich jedoch in der run()
-Methode der Thread
befindet, kann ich den Rückgabetyp der Methode nicht auf ByteArrayOutputStream
oder String
festlegen. Die Klasse HttpRequestDispatcher
wird innerhalb einer Klasse namens OAuth.java aufgerufen.
Wie kann ich diese Situation umgehen?
Mit der Callback-Methode Ansatz: Der Thread wird beendet, wenn der HttpRequest erfolgreich ist oder fehlschlägt. Nehmen wir an, ich habe zwei Methoden: requestSucceeded und requestFailed. Der Thread ruft je nach Ergebnis eine dieser Methoden auf. Meine eine Frage von dort ist, wie kann ich die Ergebnisse von requestSucceeded oder requestFailed zurück zu der ursprünglichen Methode in OAuth.java, die ursprünglich den Thread? Vielen Dank! – littleK
Sie könnten z. B. Ihre Rückrufe in OAuth.java definieren. Übergeben Sie das OAuth-Objekt an den Thread. Rufen Sie dann je nach Ergebnis den entsprechenden Callback an. Die Callback-Funktion kann "den Absender" als einen der Parameter akzeptieren, wenn Sie mehrere Threads an verschiedene Aktionen senden müssen. Das ist nur eine Idee .. – miku