2012-02-19 16 views
6

Me gustaría saber qué representa el primer <T> en la siguiente línea de código Java. He leído varios tutoriales sobre genéricos, pero ninguno de los ejemplos tiene 2 genéricos antes del nombre del método. Gracias.¿Cuál es el significado de este uso de los genéricos de Java?

public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped); 
+0

Sí, tampoco entiendo genérico en la firma del método. – MJM

Respuesta

13

La primera <T> es la declaración parámetro de tipo real, es decir, se dice que el método es genérico y tiene un parámetro de tipo T.

El segundo <T> es simplemente parte del tipo de devolución del método, es decir, el método devuelve Provider<T>.

Si se omitió el primer <T>, el tipo de retorno Provider<T> no sería válido, ya que T no sería un identificador/nombre reconocido para un tipo. T solo se reconoce como un tipo porque el primer <T> lo presenta como tal.

+0

Todavía no sé beneficio de la primera en la firma del método. – MJM

+0

Entonces, si el método usó más de un parámetro de tipo, digamos T2, ¿se vería así? 'Pública Proveedor alcance (Tecla , Proveedor sin ámbito, algo);' –

+3

No. Se vería como 'pública Proveedor alcance (Clave clave, Proveedor sin ámbito, T2 algo);' –

Cuestiones relacionadas