簡単なプログラムを実行しているときに、この問題に気づきました。
int[] example = new int[10];
List<Integer> exampleList = Arrays.asList(example);// Compilation error here
コンパイルエラーはとして返されcannot convert from List<int[]> to List<Integer>
ます。しかしList<int>
、Javaでは許可されていないのに、なぜこの種のコンパイルエラーが発生するのでしょうか。
私はここでオートボクシングについて質問していません。どうすれArrays.asList
ば戻ることができるのか疑問に思いましたList<int[]>
。
asListの実装は
public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}
したがって、int []をTとして扱っているため、これが発生しています。