tengo una clase Java que se extiende Thread
, que básicamente tiene el siguiente aspecto:necesita ayuda objeto de regresar en el método run hilo
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() {
...
}
}
necesito el método run()
para devolver un ByteArrayOutputStream
o una String
. Sin embargo, como está en el método run()
del Thread
, no puedo establecer el tipo de devolución del método en ByteArrayOutputStream
o String
.
La clase HttpRequestDispatcher
se llama dentro de una clase llamada OAuth.java.
¿Cómo puedo evitar esta situación?
Con la devolución de llamada enfoque método: El hilo terminará cuando el HttpRequest tiene éxito o no. Entonces digamos que tengo dos métodos: requestSucceeded y requestFailed. El hilo llamará a cualquiera de esos métodos, dependiendo de su resultado. Mi única pregunta es cómo puedo devolver los resultados de requestSucceeded o requestFailed al método original en OAuth.java que originalmente inició el subproceso? ¡Gracias! – littleK
Podría, por ejemplo, definir sus devoluciones de llamada en OAuth.java. Pase el objeto OAuth hacia el hilo. Luego, dependiendo del resultado, llame a la devolución de llamada apropiada. La función de devolución de llamada podría aceptar 'el emisor' como uno de los parámetros, si necesita despachar hilos múltiples a diferentes acciones. Es solo una idea. – miku