所以我有这段代码:
String query = null;
public String createConnection() {
new NetworkRequest(new ResultFromAsync() {
@Override
public void taskCompleted(String result) {
query = result;
}
}).execute();
return query;
}
我遵循MVP设计模式,从我的View中调用它在Button Click事件中调用此方法,该方法执行并从Model创建网络请求,然后在线调试时将JSON检索为String " query = result;"它实际上将结果变量中存储的内容分配给查询,但是当它到达行"返回查询时;"它等于null。
是否有人理解为什么在将查询分配给结果变量的值时将其设置为null?
答案 0 :(得分:0)
为query
赋值的方法是异步执行的,这意味着在异步请求完成之前调用execute()
不会阻塞当前线程,而是立即返回。您当时的变量值仍为null
。您无法返回您尚未拥有的值。
考虑调用需要taskCompleted()
回调中的值的代码。