Коллекция с обобщениями

У меня вопрос об использовании универсальных шаблонов с коллекциями.

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 может принимать любые типы?

В чем разница между этими двумя объявлениями?

5
задан dave4420 19 January 2012 в 20:30
поделиться