В чём разница между <? extends T> и <? super T>?
В чём разница между extends и super в generics?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
7
<? extends T> — позволяет использовать T и его подклассы (ковариантность, только чтение).
<? super T> — позволяет использовать T и его суперклассы (контравариантность, только запись).
Рейтинг:
5
Сложность:
7
extends используется, когда нужно читать данные из обобщённого типа.super используется, когда нужно записывать данные в обобщённый тип.extends ограничивает тип сверху, super — снизу.
Оба механизма помогают писать безопасный и универсальный код.
Главное правило — PECS: Producer Extends, Consumer Super.