16
правок
Изменения
Generics
,→Проблемы реализации Generics
List<Integer> l; dump(l); // '''Ошибка'''
Ошибка возникает, так как коллекция имеет свои ограничения в использовании. Для решения этой проблемы используется Wildcard ("?"). Он не имеет ограничения в использовании и в этом его плюсы.В этом примере List<Integer> не может использовать метод dump, так как он не является подтипом List<Object>.
'''Решение'''
List<Circle> l; draw(l); // '''Ошибка'''
Это решение используют, если метод который нужно реализовать использовал бы определенный тип и его подтипов. Так называемое "Ограничение сверху". В Этом примере Circle является подтипом Shape.
'''Решение'''