Страницы

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

воскресенье, 26 января 2020 г.

Java generics как работает?

#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) и представляет собой неизвестный тип. Этот символ используется в различных ситуациях: обозначает тип параметра, поля класса или типа локальной переменной, тип возвращаемого значения. Есть определённые ограничения его применения.

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

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