❓ Объясните правило PECS (Producer Extends, Consumer Super)?
Это правило выбора ограниченных wildcards в дженериках.
? extends T — ковариантность, структура-«производитель»: из неё можно безопасно читать как T, но нельзя добавлять элементы, потому что компилятор не знает точный подтип.
? super T — контравариантность, структура-«потребитель»: в неё можно безопасно добавлять T и его подтипы, но при чтении вернётся только Object.
Отсюда мнемоника: если коллекция только отдаёт данные (producer) → extends; если только принимает (consumer) → super.
🐸 Библиотека собеса по Java
#core
Post #1360
1.14K
- 👍 10
- 🔥 1
- 👏 1