Skip to content

20260225_【WIP】Arrays.asList()について

Arrays.asList()は配列をList型に変換できるが、引数の型に注意する必要がある。

引数が参照型配列の場合は、配列の各要素がそのままListの要素となり、想定通りの結果となる。

引数がプリミティブ型配列の場合は、配列そのものが要素して扱われ、要素数1のListとなり、直感に反する。

これは、Arrays.asList()の定義を見ると、理由がわかる。

java
public static <T> List<T> Arrays.asList(T… a)

Tは参照型のオブジェクトのみ許容し、プリミティブ型は許容しない。参照型配列の場合は、それそのものが可変長引数aとして扱われる(「T… a」は内部的には「T[] a」である)。プリミティブ型配列が渡された場合、プリミティブ型自体はTに当てはまることができないので、プリミティブ型配列そのものをTとして扱われることになる。