2

ケース 1:

Class Test{
    public static void m1(int[] x){
        /* some code here */
    }
}

ケース 2 :

Class Test{
    public static void m1(int... x){
        /* some code here */
    }
}

ケース2が該当するかどうか教えてください。もしそうなら、コンパイラの観点から私を説明してください。別の質問: 単一の可変長引数の代わりに単一次元配列を使用できますか?

4

3 に答える 3

0

ケース 2 コンパイラが配列コードを作成します。可変長引数を追加するとどうなるかについては、この記事を参照してください。

1 つ以上のパラメーターを渡す必要がある場合に単一の引数として varargs を使用することは、実際にその必要がない限り推奨されません。このアプローチはエラーが発生しやすく、醜いからです。

于 2013-10-05T17:32:53.627 に答える
0

配列を作成してそれをパラメーターとして関数に渡す代わりに、 を使用できますvarargs。ただし、複数の配列をパラメーターに渡して個別に操作する場合は、おそらく使用しないでくださいvarargs

ご質問への回答として、両方のケース該当します。arrayとの両方がvarargs関数内で同じように扱われます。状況に最も適したものを選択するのは本当にあなた次第です。

于 2013-10-05T17:47:26.053 に答える