Дженерики в Java появились больше 10 лет назад. Казалось бы, что о них можно рассказать?
- Что такое heap pollution;
- Почему нельзя создать массив дженериков;
- Во что компилируются дженерики;
- Что такое bridge методы, можно ли до них добраться;
- Правила type erasure;
- Разница
List
,List<Object>
,List<?>
; - Почему нельзя положить Integer в
List<? extends Number>
; - Можно ли параметризовывать исключения;
- Почему так странно выглядит сигнатура
Collections.max (<T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll));
- Правила написания гибкого API с Дженериками и wildcard;
- Примеры кода, которые, должны компилироваться, но не компилируются и наоборот;
- Другие дженерик паззлеры.
Александр Маторин, Сбербанк-Технологии
Руководитель разработки в СберТехе. Занимается разработкой риск платформы банка, основанной на микросервисах, и системой определения мошенничеств при совершении сделок на финансовых рынках. Преподает на кафедре СберТеха в МФТИ курсы по Java и по распределенным системам. Участвует в организации внутренних конференций для разработчиков в банке.