例とその超簡単な違いを理解しましょう
mymethod(String... str)
vs
mymethod(String []str)
メソッド getid は int 型の配列を取ります。
したがって、getId メソッドを呼び出す場合は、配列を渡す必要があります。
配列を渡すには、匿名配列を作成するか、最初に配列を作成して、以下の例で行ったように渡します。
class test
{
public void getid(int []i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
int []data = {1,2,3,4,5}
new test().getid(data);
}
}
以下では、トリプルドットを使用しています -> mymethod(int... i)
メソッドはまだ配列を必要としていますが、違いは、そのメソッドに直接値を渡すことができ、「...」が自動的に配列に変換されることです
。下
class test
{
public void getid(int ...i)
{
for(int value:i)
{
System.out.println(value);
}
}
public static void main(String []arg)
{
new test().getid(1,2,3,4);
}
}
" [ ] " の代わりに "..." を使用する利点
1) その保存メモリ:-
mymethod(int [ ] )
を使用する例では、メイン メソッド " Data[] " で配列を作成すると、新しいオブジェクトが作成され、取得されます。
メソッドを作成してそこに引数を定義するときと同様に、メモリ内にスペースがあります:-
getid(int []) -> これによりメモリ内に別のオブジェクトが作成されるため、メモリ内に互いに同じ2つのオブジェクトがあります
2) 「...」を使用している間は何も渡すことができません
例2では、「getid」メソッドを呼び出すときに何も渡すことができず、エラーを発生させることなく動作します。これは、たとえばプログラムをより安定させるのに非常に役立ちます
.
.
.
public static void main(String []arg)
{
new test().getid();
}
.
.
.
しかし、「getid」メソッドを呼び出し、「[ ]」の使用中に引数を渡さなかった場合、コンパイル時にエラーが表示されます