#java #generics
Я пишу: Class a = n.getClass(); Метод getClass() должен вернуть объект описывающий класс и присвоить его переменной а. Но вот это часть мне не понятна Class. Что это за тип переменной такой и куда переменную а теперь вообще можно использовать? Хочу понять как это работает. Помогите разобраться. особенно знак вопроса убивает здесь что-то общее с тернарной операцией?
Ответы
Ответ 1
Примеры Обозначение типа параметра public static double sumOfList(List list) { double s = 0.0; for (Number n : list) s += n.doubleValue(); return s; } public static void printList(List list) { for (Object elem: list) System.out.print(elem + " "); System.out.println(); } Поле класса и тип возвращаемого значения public class ClassContainer { private List list; public ClassContainer(List list){ this.list = list; } public List getList(){ return this.list; } }Ответ 2
Нет, что вы, нет здесь тернарной операции)) ? extends Object - означает, что здесь может быть любой класс, унаследованный от Object. Вот аналогичная запись: List>Ответ 3
В коде где используются обобщённые типы знак вопроса ? называется шаблоном поиска (wildcard) и представляет собой неизвестный тип. Этот символ используется в различных ситуациях: обозначает тип параметра, поля класса или типа локальной переменной, тип возвращаемого значения. Есть определённые ограничения его применения.
Комментариев нет:
Отправить комментарий