3

私は私の遊びの一部を持っています!(1.2.4) CSV ファイルからデータをロードするアプリケーションで、これは正常に動作しますが、しばらく時間がかかります。Promise メカニズムを介してジョブにファームオフしようとしています。問題は、doJobWithResult がパラメーターのないメソッドのオーバーライドであるため、入力パラメーター (CSV ファイルとファイルの種類の文字列) を渡す方法がないように見えることです。

仕事は次のようになります:-

public class ImportCSV extends Job<string> {
public String doJobWithResult()
{
    do stuff...
    return my_string;

}

そして次のように呼び出されます:-

Promise<String> recordcount = new ImportCSV().now();
String records = await(recordcount);

これらのパラメーターを受け取る Job クラスでコンストラクターを作成しようとしましたが、 now() メソッドを介して呼び出されたときにトリガーされません。

実際にジョブを非同期で実行するために必要なデータを渡す方法について何か提案はありますか?

4

1 に答える 1

4

あなたがすべき:

  1. private fieldsジョブに必要なパラメーターを保持するために、ImportCSV クラスで作成します。
  2. Job クラスのコンストラクターでこれらのフィールドを初期化します ( this.param1 = param1)
  3. new ImportCSV(param1, param2)オブジェクトを初期化するための呼び出し
  4. を使用して doJobWithResult() メソッドのプライベート フィールドにアクセスします。this.param1

Promise の作成は良好です。次のように終了します。

Promise<String> recordcount = new ImportCSV(param1, param2).now();
String records = await(recordcount);

Job クラスのコンストラクターに問題がある場合は、質問を更新してコードを追加してください。

于 2012-07-25T10:09:23.893 に答える