JAVAメソッド宣言のパラメータの3つの小数点


オリジナル記事、転載は明記してください.
        私たちは次の方法の声明を見ます.
    public static void tst( Object... initargs){
    	System.out.println(initargs.length);
    	System.out.println(initargs[0]);

    }

       パラメータの中の3つの小数点はどういう意味ですか.これはメソッドの自動リロードを表します.つまり、私たちの次のコードは合法的です.
    tst();//0,   
    tst(1);//1,1
    tst(1,2);//2,1
    tst(1,2,3);//3,1
       その実現原理はinitargsを自動的にObject[]配列に変換することである.
       これは問題です.もし私たちのパラメータ自体が配列だったら、どうしますか.次のコードがあります.
String[] strArr = new String[2];
strArr[0]="a";
strArr[1]="b";
tst(strArr);//2,a
        可见,如果传入的是数组,则Java默认就不再去转换Object数组了,也就会造成参数错误。 
  
 

       解决办法就是,再初始化一个Object[]数组,传入函数,如下代码所示:

String[] strArr = new String[2];
strArr[0]="a";
strArr[1]="b";
Object[] args = new Object[1];
args[0]=strArr;
tst(args);//1,{“a”,"b"}