Navegación a través de las bibliotecas Guava vi esta firma raro en un método de la clase readlines Archivos:Java Tipo extraño retorno genérica
public static <T> T readLines(File file,
Charset charset,
LineProcessor<T> callback)
sé un poco acerca de los genéricos en Java, pero esto me desconcertó.
¿Qué significa la doble T aquí? ¿Y por qué el primero está en paréntesis angulares?
ACTUALIZACIÓN: Gracias por las respuestas. Todavía no tengo claro por qué debería usar una T dentro de los corchetes. ¿Por qué, por ejemplo, no puede ser sólo:
public static <> T readLines()
o
pulibc static <K> T readLines()
¿O es que dictan que la misma letra debe ser utilizado la sintaxis de Java?
Ahora this es aún wierder:
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
¿cómo puede un método tienen un tipo genérico de retención y se anularán?
La T en paréntesis angulares NO es el tipo de retorno; es el parámetro de tipo para el método. –
Tenga en cuenta que si no hubiera en las firmas anteriores, el compilador esperaría encontrar "clase T {...}" en alguna parte. Algo tiene que informarle al compilador que le gustaría que haya un * parámetro de tipo * llamado T. Y este es el camino. –