Я пишу:
Class<? extends Task> a = n.getClass();
Метод getClass()
должен вернуть объект описывающий класс и присвоить его переменной а
.
Но вот это часть мне не понятна Class<? extends Task>
. Что это за тип переменной такой и куда переменную а
теперь вообще можно использовать?
Хочу понять как это работает. Помогите разобраться.
особенно <? extends Task> знак вопроса убивает здесь что-то общее с тернарной операцией?
Примеры
public static double sumOfList(List<? extends Number> 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<? extends Number> list;
public ClassContainer(List<? extends Number> list){
this.list = list;
}
public List<? extends Number> getList(){
return this.list;
}
}
Нет, что вы, нет здесь тернарной операции))
? extends Object
- означает, что здесь может быть любой класс, унаследованный от Object
. Вот аналогичная запись:
List<? extends Map<String, String>>
В коде где используются обобщённые типы знак вопроса ? называется шаблоном поиска (wildcard) и представляет собой неизвестный тип. Этот символ используется в различных ситуациях:
Есть определённые ограничения его применения.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В качестве нового опыта есть идея создать приложение на JAVA ( в планах простой чат с сервером и БД) чтобы там использовалось следующее:
У меня активность содержит фрагментПри нажатии кнопки в этом фрагменте, у меня должны измениться состояния View в макете активности
Пытаюсь развернуть вэб приложение на хостинге(там стоит томкат)По умолчанию tomcat предоставляет контекст к приложению равный имени war'ника,...