我试图从函数中的嵌套类中返回一个变量,如下所示:
public int getPlan(int planID) {
int planId;
TableOperationCallback<Plans> callback = new TableOperationCallback<Plans>() {
public void onCompleted(Plans plan, Exception exception,ServiceFilterResponse response) {
if(exception == null){
int planId = (int) db.addPlan(plan); //Want to return this value
} else {
Log.e(exception.getMessage(), "ERROR");
}
}
};
mPlanTable.lookUp(planID, callback);
return planId;
}
此方法与Azure Android SDK链接,并且异步调用mPlanTable.lookUp()。因此,planId
有时会使用上面的代码返回null。
返回实际值的最佳方法是什么?
答案 0 :(得分:1)
如果lookUp是异步的,那么你永远不会返回它的结果。您需要重构代码,以便在回调中完成使用返回值的任何内容,而不是在那里。