Arrays.asList() の難題: 制限を理解する
Java では、Arrays.asList メソッドは配列を変換する便利な方法を提供します。リストに追加します。ただし、float[] などのプリミティブ配列を扱う場合、異常が発生します。
このコード スニペットは期待どおりに機能し、Integer オブジェクトのリストを作成します。
List<Integer> list = Arrays.asList(1,2,3,4,5);
一方、次のコードは List
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
代わりに、出力は List
Arrays.asList は、構文上の省略表現である varargs パラメータを受け入れます。配列。ただし、プリミティブの場合は、各プリミティブ値ではなく、配列全体を単一の要素として扱います。これにより、オブジェクトとしてラップされた個々のプリミティブ値ではなく、プリミティブの配列を含むリストが作成されます。
残念ながら、 int[] を List
オートボクシングは通常、プリミティブを変換します。オブジェクト コレクションで使用するために、対応するラッパー オブジェクトに変換します。ただし、プリミティブの配列に適用すると、要素ごとに発生しません。この制限は、配列のオートボックス化が Java でサポートされていないという事実に起因しています。
以上がJava では「Arrays.asList()」がプリミティブ配列をオートボックス化しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。