-
Notifications
You must be signed in to change notification settings - Fork 3
Generics
Aleksandr Kuchuk edited this page Jun 18, 2016
·
10 revisions
Зачем нужны Generics?
List в Java инвариантен, т.е если у меня есть два класса, один из которых наследник другого, например, List и List, то эти коллекции - не являются наследниками друг друга и подставить одну вместо другой мы не можем. Они инвариантны.
List<String> strings = new ArrayList<>();
List<Object> objects = strings; //wrong!Так делать запрещено! Почему? Потому что если бы такое было разрешено, то мы бы получали ошибки в рантайме, которые сложно отследить. Когда я бы у коллекции objects какой-нибудь элемент кастовал бы в String, а он был бы не String.