Te has perdido el tipo de devolución, pero aparte de eso, es un método genérico. Al igual que con los tipos genéricos, T
representa cualquier tipo de referencia (dentro de los límites, si corresponde).
Para los métodos, los parámetros genéricos son típicamente inferidos por el compilador. En determinadas situaciones, es posible que desee especificar los argumentos genéricos sí mismo, utilizando una sintaxis poco peculiar:
List<String> strings = Collections.<String>emptyList();
En este caso, el compilador pudiera deducir el tipo, pero no siempre es obvio si el compilador puede o puede' t. Tenga en cuenta que el <>
está detrás del punto. Por razones sintácticas siempre se debe especificar el nombre del tipo o el objeto de destino.
Es posible tener constructores genéricos, pero nunca he visto ninguno en la naturaleza y la sintaxis empeora.
Creo que las sintaxis C++ y C# colocan los tipos genéricos después del nombre del método/función.
que quieres decir: public static int binarySearch (Lista Extends Comparable super T>> lista, tecla T) en Colecciones? Es solo un tipo genérico, en este caso si su clave es una Cadena, entonces su Lista debe ser de elementos que implementen Comparable que pueda comparar Cadenas. No hay nada que decida sobre qué es T igual, solo se trata de verificaciones de tiempo de compilación. –
JeeBee
Sí, eso es lo que quiero decir. – quilby