我正在使用一些第三方庫通過異步協議連接到服務器並獲取響應。例如方法通過用戶名獲得用戶ID是這樣的:在Java中需要回調和匿名類的幫助
public int getUserid(String username) {
int userid = 0;
connection.call("getUserid", new Responder() {
public void onResult(final int result) {
System.out.println("userid: " + result);
//how to assign received value to userid and return it?
}
}, username);
//wait for response
while (userid == 0) {
try{
Thread.sleep(100);
} catch (Exception e) {}
}
return userid;
}
問題是我不能指定返回「結果」從服務器響應從方法到「用戶id」變量(以後歸還) 。如何解決這個問題?我可能可以將它分配給一些類變量而不是方法變量,但我想將它保留在方法範圍內,所以我不必處理併發問題。
謝謝。
謝謝。它需要被多次調用,雖然...你是指從哪個同步模型讀取/寫入這個ValueBox對象?這將會非常複雜...... – serg 2009-05-28 01:34:07