2013-04-25 3 views
1
private static <T> List<T> createListOfType(Class<T> type){ 
    return new ArrayList<T>();   
} 

Я понимаю, что он пытается сделать, но я не понимаю эту часть <T> List<T>Как читать этот заголовок?

Почему не просто List<T>

спасибо заранее

+3

Обратите внимание, что параметр 'type', не имеет смысла и может быть удален. –

+0

@PaulBellora, аргумент 'type' можно удалить? Первый '' требуется, нет? –

+0

@MiserableVariable Я имею в виду параметр 'type', а не параметр типа :) –

ответ

9

Первый <T> объявляет параметр универсального типа T для метода. Следующая часть, List<T> - тип возврата. Без объявления <T> символ T не будет разрешен.

+0

+1 За фактический ответ на вопрос :) –

0

Часть подписи определяет тип возвращаемого метода. Он вернет List с параметризованным типом предоставленного класса.

Class<String> Таким образом, если предусмотрен в качестве аргумента метод будет по существу сделать следующее:

private static List<String> createListOfType(Class<T> type){ 
    return new ArrayList<String>();   
} 
Смежные вопросы