¿Qué significa <T> T cuando se usa como firma de método? ¿Es un tipo de retorno?

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

Esto es para una biblioteca multiproceso para gráficos. No estoy pidiendo nada pertinente para la implementación real, simplemente no entiendo lo que significan los tipos de doble retorno.

Solo estoy adivinando aquí, pero esta es mi interpretación (traté de buscar en Google, pero Google no coincide con símbolos no alfanuméricos, así que probé algunas combinaciones de términos pero no llegué a ningún lado).

¿Solo dice que devolverá algún tipo de colección de tipo T? Dos clases amplían la clase en la que se encuentra este método, por lo que supongo que permite el polimorfismo, pero ¿cuál es el verdadero significado de esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta