@SlavaMorg

Где нужно писать generics в Java?

Для чего нужны generics я в принципе понимаю: чтобы при обращении к элементам коллекции получать объекты специфического типа, а не типа Object. Не понимаю только, зачем прописывать их дважды:
ArrayList<Shape> list = new ArrayList<Shape>();
Да, я в курсе, что в java 7 можно обойтись бриллиантом, но мне всё равно не понятно, почему тип убирается именно в создании коллекции. Объясните, в чём разница между этими двумя строками:
ArrayList<Shape> list = new ArrayList<Shape>();
ArrayList list = new ArrayList<Shape>();

Заранее благодарю.
PS: Нет, в гугле меня не забанили, правда не могу найти ответ.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
zolt85
@zolt85
Программист
В первом случае у вас будет типизированный классом Shape ArrayList и вы сможете обращаться к элементам, как к объектам Shape.
Во втором случае у Вас будет также типизированный ArrayList, только типизирован он будет классом Object (не зависимо от того, как Вы инициализировали ArrayList), и если Вы захотите обратиться к элементу как к классу Shape, Вам придется кастовать элемент к классу Shape.

Ну это если совсем по простому.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы