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