6

たとえば、次のようなコードがあります:(ここから)

private class LongOperation extends AsyncTask<String, Void, String> {

      @Override
      protected String doInBackground(String... params) {}      

      @Override
      protected void onPostExecute(String result) {}

      @Override
      protected void onPreExecute() {}

      @Override
      protected void onProgressUpdate(Void... values) {
      }
}

メソッドのパラメーターの 3 つのドットは何をしますか?

4

3 に答える 3

9

ここでは 3 つのドットをvarargsおよび と呼び、次のように複数の文字列をメソッドに渡すことができます。

doInBackground("hello","world");
//you can also do this:
doInBackground(new String[]{"hello","world"});

そのドキュメントはこちら。

メソッド内で、次のようdoInBackgroundに varargs 変数を列挙できます。params

for(int i=0;i<params.length;i++){
    System.out.println(params[i]);
}

したがって、基本的にはの範囲内の文字列の配列ですdoInBackground

于 2013-07-12T20:10:48.990 に答える
4

コンパイラは、3 つのドット...をそのオブジェクトの配列を取り込むものとして扱います。この場合StringVoid. 渡すオブジェクトの量は、配列のサイズです。

したがって:

doInBackground("Hi", "Hello", "Bye")String長さ 3の配列を作成します。

于 2013-07-12T20:12:26.123 に答える
2

この概念はvarargsと呼ばれ、ここで説明されています

于 2013-07-12T20:13:15.927 に答える