Что означает ‹T›T при использовании в качестве сигнатуры метода? Это возвращаемый тип?

abstract public <T> T iterEdges(EdgeFun<T> func, T accum);

Это для многопоточной библиотеки для графиков. Я не прошу ничего, относящегося к фактической реализации, я просто не понимаю, что означают двойные возвращаемые типы?

Я просто догадываюсь, но это моя интерпретация (я пробовал гуглить, но Google не находит не буквенно-цифровые символы, поэтому я пробовал несколько комбинаций терминов, но ничего не добился).

Это просто говорит о том, что он вернет какую-то коллекцию типа T? Два класса расширяют класс, в котором находится этот метод, и поэтому я предполагаю, что он допускает полиморфизм, но каково истинное значение этого?


person Arthur Collé    schedule 14.09.2014    source источник


Ответы (2)


Это общий метод. Первый предназначен для универсального типа, который будет использоваться. Функция также объявляет, что возвращает этот тип T. Параметры показывают, что они используют этот общий тип параметра.

person mkobit    schedule 14.09.2014

T является общим типом. Это позволяет вызывать универсальный тип при использовании класса в реальном коде.

Возможно, вы также видели <K, V> в хеш-картах. Ниже приведена легенда для других параметров

E – элемент (широко используется в Java Collections Framework)
K – ключ
N – номер
T – тип
V – значение
S,U,V и т. д. – 2-й, 3-й , 4-й тип

http://docs.oracle.com/javase/tutorial/java/generics/types.html

person eazimmerman    schedule 14.09.2014