Я хочу знать, что такое использование такого синтаксиса. Я написал простую программу, как показано ниже,Класс <? extends T>
public class Sample{
public static void main(String[] args) {
Class<? extends Collection> someCollectionClass = someMethod();
}
public static ArrayList someMethod() {
return new ArrayList();
}
}
Почему он показывает ошибку компиляции, как,
- Collection is a raw type. References to generic type Collection<E> should be
parameterized
- Type mismatch: cannot convert from ArrayList to Class<? extends Collection>
В здесь же, что класс ожидать класс (его на самом деле объект, который он принять знаете, это ?), который расширяет коллекцию. Итак, что случилось с ArrayList?
является Также допустимым, если синтаксис, если я объявить что-то как Class<? extends T>
Вы можете объявить что-то как '' класса extends T>, но это не относится к какому-либо объекту в Java, это то, что класс 'Object' для Посмотрите здесь для получения дополнительной информации:. Http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html, но 'Class' относится к фактической реализации и деталям. – dcpomero