3

重複の可能性:
Java で可変引数を持つメソッドに引数として配列を渡すことはできますか?
メソッドシグネチャとは…

私がこれを初めて見たのは、Minecraft のモッディングをしていたときでした。(String ... line) を指定するコンストラクターがあり、それはMojangが作成した省略表現にすぎないと考えていました。しかし、今、私は見ていてProcessBuider、またそれを見まし。これは何に使うのか気になりました。私の推測では、開発者はそのタイプのオブジェクトを好きなだけ追加できるようになっていると思います。しかし、その場合は、単に配列またはリストを使用しないのはなぜでしょうか?

だから、本当に、私は2つの質問をしています:

  1. 「...」演算子とは何ですか。
  2. 配列やリストを使用するよりも便利なのはなぜですか?
4

5 に答える 5

2

これはと呼ばれvarargs、あなたが言うように、指定されたタイプの任意の数の引数を使用してメソッドを呼び出せるようにするために使用されます。これはJava5で導入されました。
詳細については、を参照してJava tutorials - Varargsください。

于 2012-08-13T22:57:29.980 に答える
2

...可変長関数 (可変数の引数を取ることができる関数) に対する複数の引数リストを示します。

この例については、 を参照してPrintStream.formatください。最初の (必須の) 引数は formatStringで、残りの 0 個以上の引数はその形式を満たします。

于 2012-08-13T22:54:44.917 に答える
1

これは。と同等String[] lineです。これは、JavaのC /C++のvarargsキーワードに相当します。C / C ++と同様に、最後のパラメーターとして表示する必要があります。

于 2012-08-13T22:55:43.137 に答える
0

あなたはすでに質問1に自分で答えています。なぜそれがより有用であるかに関しては、それはより少ないタイピングを必要とする単なる速記です。

于 2012-08-13T22:57:46.670 に答える
0

2 番目の質問に答えるために、varargs の利点の 1 つは、そのパラメーターを渡さずに varargs パラメーターを取る関数を呼び出すことができることです。代わりに、関数が配列を受け取り、値なしで呼び出す必要がある場合、呼び出し元は明示的に null を渡す必要があります。

于 2012-08-13T23:16:37.863 に答える