我正在使用一些第三方库通过异步协议连接到服务器并获得响应。例如,通过用户名获取用户 ID 的方法如下所示:
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;
}
问题是我无法将服务器响应返回的“结果”分配给方法中的“userid”变量(以便之后返回)。如何解决这个问题?我可能可以将它分配给某个类变量而不是方法变量,但我想将它保留在方法范围内,这样我就不必处理并发问题。
谢谢。