Подтвердить что ты не робот

Java Arrays.asList для примитивного типа массива создает неожиданный тип списка

Возможный дубликат:
Arrays.asList() не работает как следует?

По-видимому, тип возврата Arrays.asList(new int[] { 1, 2, 3 }); равен List<int[]>. Это кажется мне полностью нарушенным. Связано ли это с Java, а не с autoboxing массивами примитивных типов?

4b9b3361

Ответ 1

Проблема заключается в том, что Arrays.asList принимает параметр T... array. Единственным применимым T при передаче int[] является int[], так как массивы примитивов не будут автоматически загружаться в массивы соответствующего типа объекта (в данном случае Integer[]).

Итак, вы можете сделать Arrays.asList(new Integer[] {1, 2, 3});.

Ответ 2

Try:

Arrays.asList(new Integer[] { 1, 2, 3 });

Примечание Целое вместо int. Коллекции могут содержать только объекты. Допустимые типы не допускаются. int не является объектом, но int[] есть, поэтому вы получаете список с одним элементом.