AFAIK, дженерики Java не поддерживают примитивные типы, тогда как int [] компилируется?Как здесь возможен автобокс?
Во-первых, int[]
и double[]
не являются примитивными типами.Это ссылочные типы.
Во-вторых, здесь не происходит автобокс.Автобокс - это когда примитив значение преобразуется в соответствующий тип оболочки значение :
- Здесь значения типа оболочки не используются.
- Действительно, значения вообще не задействованы.(
int[]
- это тип, а не значение.) - Здесь даже не выполняется преобразование на уровне типа.
Все, что требуется, - это проверка типа во время компиляции.что int[]
является подтипом Object
.
И предпринятая попытка проверки во время компиляции, что int
является подтипом Object
..., которая не выполняется и выдает ошибку компиляции.
Если вам нужен список целых или двойных чисел, вы должны явно использовать классы-оболочки в качестве параметра типа;например, List<Integer>
или List<Double>
.