У меня вопрос об использовании универсальных шаблонов с коллекциями.
ArrayList<Integer> al=new ArrayList<Integer>();
Мы знаем, что приведенная выше строка означает, что ArrayList
al
могут содержать только целые числа. Итак, следующая строка дает ошибку компиляции:
al.add("wwww");
Но я не понимаю, что означает строка ниже,
ArrayList al=new ArrayList<Integer>();
Где мы не указываем ArrayList
в левой части при объявлении. Теперь следующая строка не выдает ошибку компиляции:
al.add("wwww");
Итак, если я объявляю как
ArrayList al=new ArrayList<Integer>();
, это означает, что a1
может принимать любые типы?
В чем разница между этими двумя объявлениями?