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