Расскажи про дженерики в Java, сталкивался ли с wildcard-ами

В Java Wildcard (?) — это специальный символ, используемый в обобщённых типах (Generics) для обозначения неизвестного типа. Он позволяет создавать более гибкие и обобщённые методы и классы.

Короткий ответ

Что ответить на собеседовании

В Java Wildcard (?) — это специальный символ, используемый в обобщённых типах (Generics) для обозначения неизвестного типа. Он позволяет создавать более гибкие и обобщённые методы и классы.

Подробный разбор

Ответ с пояснениями

В Java Wildcard (?) — это специальный символ, используемый в обобщённых типах (Generics) для обозначения неизвестного типа. Он позволяет создавать более гибкие и обобщённые методы и классы.

Основные виды Wildcard:

  • <?> — необработанный wildcard, означает «любой тип».
  • <? extends T> — верхняя граница, означает «любой тип, являющийся T или его подклассом».
  • <? super T> — нижняя граница, означает «любой тип, являющийся T или его суперклассом».

Пример:

List<? extends Number> list = new ArrayList<Integer>();
// Можно читать элементы как Number, но нельзя добавлять новые элементы, кроме null

List<? super Integer> list2 = new ArrayList<Number>();
// Можно добавлять Integer и его подклассы, но при чтении получаем Object

Wildcard помогает писать более универсальный код, позволяя работать с разными типами, сохраняя при этом безопасность типов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее