だから私はString...
Javaのポイントを理解しようとしてきました。私が理解していることから、それは String[] とほぼ同じですが、ここまたは Google でそれに関する情報を見つけることができません。
誰かがそれが何であるか、そしてそのようなものの適切な使用法を教えてもらえますか? (パラメータを持つメソッドがあるとしましょうmyMethod(String... args) { ... }
ありがとう!
String[]
この構文は、型に関する限り、実際には と同じです。String
ただし、可変数のパラメーターを指定することにより、呼び出し元が暗黙的に配列を作成できるようになります。
myMethod("a", "b", "c");
myMethod(); // Empty array is also allowed
myMethod("a", "b");
この構文の制限の 1 つは、そのような引数はメソッドのパラメーター リストの末尾にのみ表示される可能性があることです。
myMethod
が0 個以上のString
引数を受け入れることを意味します。たとえば、ここを参照してください。Java 言語仕様では、これは可変アリティパラメータと呼ばれます。
メソッドまたはコンストラクターの最後の仮パラメーターは特別です。型の後に続く省略記号で示される可変アリティ パラメーターである場合があります。
最後の仮パラメータが可変アリティ パラメータの場合、メソッドは可変アリティ メソッドです。それ以外の場合は、固定アリティ メソッドです。
JLSは、可変アリティ パラメータがある場合にメソッド シグネチャがどのように照合されるかについても、ぞっとするほど詳細に説明しています。
は...
、メソッドがvar-args 、つまり可変 (数) 引数をサポートしていることを示します。
だから、あなたはあなたのmyMethod()
として呼び出すことができます
myMethod(); // or
myMethod(str1); // or
myMethod(str1, str2); // and so on
同じメソッド シグネチャを使用しますmyMethod(String... str)
。複数のパラメーターを持つvar-argメソッドを宣言する場合、 var-argパラメーターは、他のすべての通常のメソッド パラメーターの後に成功する必要があります。
メソッド内では、渡されたすべての引数に、パラメーターと同じ参照名を持つ配列としてアクセスできるようになります。というわけで、ここは実際に使えstr.length
ます。
この機能は非常に柔軟です。それにa を渡すこともできますString[]
。しかし、その逆は正しくありません。配列を取るメソッドは、個々の文字列を受け入れません。