最近、さまざまなプログラムを実行しているときに、次のコードを見ました。
protected Object doInBackground(Object... arg0)
{
....
....
....
}
の意味がわかりませんObject...
...
データ型の後で見たことはありません。
最近、さまざまなプログラムを実行しているときに、次のコードを見ました。
protected Object doInBackground(Object... arg0)
{
....
....
....
}
の意味がわかりませんObject...
...
データ型の後で見たことはありません。
これは、可変引数または単に var-args として呼び出されます。Java 5 で導入されました。メソッドが var-args をパラメーターとして受け入れる場合、そのメソッドに任意の数のパラメーターを渡すことができます。たとえば、以下のメソッド呼び出しはすべて、メソッド宣言に対して成功します。
doInBackground(new Object());
doInBackground(new Object(), new Object());
doInBackground(new Object(), new Object(), new Object());
doInBackground(new Object(), new Object(), new Object(), new Object());
詳細については、以前の投稿を参照 してください。Java で可変引数を持つメソッドに配列を引数として渡すことはできますか?
http://docs.oracle.com/javase/tutorial/java/javaOO/arguments.htmlの「任意の数の引数」を参照してください。
これは、配列を手動で作成するためのショートカットです (前の方法では、配列ではなく可変引数を使用できました)。
には、任意の数のオブジェクト パラメータを入力できますdoInBackground
。arg0
その後、メソッドの配列を介してアクセスできます。arg0[0]
、arg0[1]
など。
Object は、Java のユーザー定義クラスのすべての実行時インスタンスの親と考えることができます。「...」は Java の Varargs を指します。以下は可変引数の例 です。基本的に配列として解釈されます。
オブジェクトは、プリミティブを除く Java のすべてのクラスの基本型です。
3 つのドットは、任意の数の引数 (可変引数) を渡すことができることを示します。
...
varargs と呼ばれる複数の引数を指定できます。
doInBackground(1, "hello", "world");
これはMessageFormat.format
、フォーマットを指定し、そのフォーマットを満たすオブジェクトを指定できるようにするメソッドの仕組みです。
public static String format(String pattern,
Object... arguments);
//Usage
MessageFormat.format("hello {0}, I'm from {1}", "John", "Earth");