Junior — Middle
141
Wyjaśnij koncepcję Wildcard w systemie ogólnych typów (Generics).
Firmy, w których zadano pytania
DCloud
Odpowiedź od AI
sobes.tech AI
В 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 помогает писать более универсальный код, позволяя работать с разными типами, сохраняя при этом безопасность типов.