返回對象我有一個擴展Thread
一個Java類,它基本上看起來像下面這樣:需要幫助線程的run方法
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() {
...
}
}
我需要run()
方法返回一個ByteArrayOutputStream
或String
。但是,因爲它在Thread
的run()
方法中,我不能將方法的返回類型設置爲ByteArrayOutputStream
或String
。
的HttpRequestDispatcher
類被稱爲一個名爲OAuth.java類裏面。
我該如何解決這種情況?
使用回調方法:當HttpRequest成功或失敗時,線程將完成。假設我有兩個方法:requestSucceeded和requestFailed。線程將根據其結果調用其中一種方法。我的一個問題是如何將requestSucceeded或requestFailed的結果返回到最初啓動Thread的OAuth.java中的原始方法?謝謝! – littleK 2010-02-20 00:30:01
您可以在OAuth.java中定義您的回調。將OAuth對象傳遞給線程。然後,根據結果調用適當的回調。如果您需要將多個線程分派給不同的操作,則回調函數可以接受'發件人'作爲參數之一。這只是一個想法.. – miku 2010-02-20 00:39:18