1

次のように、関数のネストされたクラス内から変数を返そうとしています:

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 が返されることがあります。

実際の値を返す最良の方法は何ですか?

4

1 に答える 1

1

lookUp が非同期の場合、その結果を返すことはありません。戻り値を使用するすべての処理がコールバックで行われるように、コードをリファクタリングする必要があります。

于 2013-04-14T23:30:41.670 に答える