Следующий метод возвращает список, состоящий из T
элементов типа:
public <T> List<T> getList() {
return new ArrayList<T>();
}
В подписи у нас есть <T> List<T>
. Значение List<T>
имеет смысл, поскольку это тип возвращаемого значения . Зачем нужен предыдущий <T>
, хотя?
Код не компилируется без <T>
и List<T>
. Отсутствие <T>
дает
Не удается разрешить символ T
Я прочитал официальный учебник Oracle по generi c методам . Это объясняет, что это является частью синтаксиса:
Синтаксис для метода generi c включает в себя список параметров типа внутри угловых скобок, который отображается перед возвращаемым типом метода.
Но на самом деле это не объясняет, зачем он вообще нужен или как точно он влияет на метод.