Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Что означает “?” в дженериках?

#java #классы #рефлексия


Изучаю сейчас Reflection. В примере есть строка

Class cls1 = Integer.class;


Что означает знак вопроса?
И почему нельзя просто написать 

Class cls1 = Integer.class;

    


Ответы

Ответ 1



Grundy прав. По идее он может быть полезен в трех случаях. Когда классов обобщения несколько и лишь один нужно оставить неизвестным. Когда вам необходимо одну и ту же переменную инициализировать объектами с разными видами обобщения. Если использовать Object то при инициализации new List будет ошибка, а при вы сможете инициализировать эту переменную и как new List и как new List. Исходя из предыдущего, вы можете определять ее каким-либо интерфейсом или суперклассом , и инициализировать любым классом, который подходит этим критериям, а не только конкретно этим интерфейсом или классом (Этакая двойная фильтрация).

Комментариев нет:

Отправить комментарий