
Víctor Kalcich
PreguntaBuenas, como estan?
No entiendo en la declaracion del metodo
static <T> List<T> getList (T… elements)
porque se escribe <T>? a que hace referencia? si el metodo es estatico y lo que va a retornar es la lista de T y luego sigue el nombre del metodo que es getList.
Gracias.

Sinuhe Jaime Valencia
Retomando, solo para mantener fresca la informacion:
Cuando decimos
<T>
Hey, este metodo no trabaja con un tipo de dato concreto, asi que puede trabajar con cualquier dato, puede ser un numero, una clase, cualquier dato!
Asi, donde anteriormente tendriamos un tipo de dato, ahora tenemos un
T
Puesto de otra forma, si esta funcion trabajara con
String
static List<String> getList(String... elements){ //code here... }
Como este metodo/funcion no esta restringido a un solo tipo podemos usar
T
String
Pero como el metodo es
static
Mira amigo compilador, si te encuentras con
, en realidad debes reemplazarlo con el tipo correspondiente, no te asustes, te aviso para que sepas manejar el tipo correcto, cuidate compi, cuida mi codigo.T
De esa manera el compilador va a encargarse de reemplazar las llamadas a esta funcion con el dato que sea necesario.

Julian Andres Fuentes Vidal
Básicamente el <T> le indica al compilador que T es una clase genérica para que NO vaya a buscar una clase con el nombre T. Por ejemplo, en el retorno List<T> el compilador sabe que no existe ninguna clase T gracias a que después del static le indicaste que <T> es genérica.

Julio Jaramillo
Hola Victor, respondiendo a tu pregunta "T" hace referencia al tipo de dato que se manejará tu método cuando este se implemente en un programa dentro de su implementación;
Este concepto se llama Generics y este tema de Java nos permite trabajar una implementación que se puedan tratar multiples tipos de datos.
Esa flexibilidad se define en la parte que te marco con parentesis en el código de abajo; lo que decimos ahi, es que la letra T sera un valor referencia de tipo dato en todo el método, tu podrías utilizar otras letras pero hay un standard por los desarrolladores de Java que son:
E - Element K - Key. N - Number. T - Type. V - Value.
En el momento de poner codigo dentro de este metodo de abajo se tiene que programar lineas que pueda manejar con List por que es lo unico estatico que tenemos en nuestro metodo.
public static **<T>** List<T> getListOf(T... items) { //You code will be here }
Entonces cuando implementamos ese codigo de abajo sabemos que Utils.getListOf usa Generics y esta abierto a trabajar con multiples datos; pero de tu lado izquierdo sabe que datos va a recibir, y entonces el compilador Java adapta Utils.getListOf a lo que necesita proveer y obtiene una lista de Strings.
List<String> coolNames = Utils.getListOf("Sinuhe", "Ada", "Victoria", "Brenda");
Espero haberte ayudado, saludos!