Обобщения были созданы в качестве помощи разработчику, но вы должны использовать их, чтобы получить выгоду.Ваша IDE предупредит вас о необработанном использовании ArrayList:
ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized
Но это не мешает вам повеситься, нет.Обратите внимание, что в некоторых IDE вы можете на самом деле заставить их быть ошибками компиляции, что может быть тем, что вы ищете.
Теперь, что касается того, что находится в вашем списке, это именно то, что вы добавили в него.Помните, что дженерики - это не что иное, как «синтаксический сахар», подсказки компилятора, которые полностью удаляются из сгенерированных классов.Таким образом, во время выполнения нет указания на то, какой универсальный тип был у объекта.В вашем случае ваш код работает нормально, потому что все, что вы делаете, это распечатываете содержимое списка.Все ваши объекты автоматически конвертируются в строки!Попробуйте вместо этого для развлечения и игр:
public static void main(String[] args) {
ArrayList<Integer> iList = new ArrayList();
iList = returList();
for (final Integer i: iList) {
System.out.println(i.intValue());
}
}