Неочевидные Дженерики<?>();

Дженерики в 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 и по распределенным системам. Участвует в организации внутренних конференций для разработчиков в банке.