private static <T> List<T> createListOfType(Class<T> type){
return new ArrayList<T>();
}
Я понимаю, что он пытается сделать, но я не понимаю эту часть <T> List<T>
Как читать этот заголовок?
Почему не просто List<T>
спасибо заранее
private static <T> List<T> createListOfType(Class<T> type){
return new ArrayList<T>();
}
Я понимаю, что он пытается сделать, но я не понимаю эту часть <T> List<T>
Как читать этот заголовок?
Почему не просто List<T>
спасибо заранее
Первый <T>
объявляет параметр универсального типа T
для метода. Следующая часть, List<T>
- тип возврата. Без объявления <T>
символ T
не будет разрешен.
+1 За фактический ответ на вопрос :) –
Часть подписи определяет тип возвращаемого метода. Он вернет List
с параметризованным типом предоставленного класса.
Class<String>
Таким образом, если предусмотрен в качестве аргумента метод будет по существу сделать следующее:
private static List<String> createListOfType(Class<T> type){
return new ArrayList<String>();
}
Обратите внимание, что параметр 'type', не имеет смысла и может быть удален. –
@PaulBellora, аргумент 'type' можно удалить? Первый '' требуется, нет? –
@MiserableVariable Я имею в виду параметр 'type', а не параметр типа :) –