2010-06-10 12 views

Respuesta

6

La siguiente es no la sintaxis

<ArgType>genericMethod() 

parece que los argumentos de tipo debe venir en pos de un punto como en

SomeClass.<ArgType>genericMethod() 
this.<ArgType>genericMethod() 
p.<ArgType>genericMethod() 
super.<ArgType>genericMethod() 
SomeClass.super.<ArgType>genericMethod() 
SomeClass.this.<ArgType>genericMethod() 
48

De acuerdo con la Java specification que sería por ejemplo:

Collections.<String>unmodifiableSet() 

(Lo siento por preguntar y responder a mi propia pregunta - que solo estaba buscando esto por tercera vez :-)

+3

Según entiendo responder a su propia pregunta es perfectamente aceptable , siempre y cuando no sea un duplicado (es decir, no vaya a buscar repeticiones de esta manera). –

+0

Si es para la posteridad, podría corregir el error tipográfico en el ejemplo ;-). –

+0

Probablemente deberías aceptar tu propia respuesta :) – bacar

4

A. buen ejemplo de java.util.Collection de especificar un método genérico que define su propio tipo genérico es Collection.toArray, donde la firma del método se ve así:

<T> T[] toArray(T[] a); 

Esto declara un tipo genérico T, que se define en la llamada al método mediante el parámetro T[] a y devuelve una matriz de T. Por lo que la misma instancia podría llamar al método toArray de manera genérica:

Collection<Integer> collection = new ArrayList<Integer>(); 
collection.add(1); 
collection.add(2); 

// Call generic method returning Integer[] 
Integer[] ints = collection.toArray(new Integer[]{}); 

// Call generic method again, this time returning an Number[] (Integer extends Number) 
Number[] nums = collection.toArray(new Number[]{}); 

También, ver el java tutorial on generic type parameters.

+3

Quizás podrías ampliar esto con la parte sobre dar explícitamente un parámetro de tipo a una llamada (compara mi respuesta). Entonces sería una buena respuesta canónica; tal como está, ni siquiera responde la pregunta, ya que el parámetro es deducido implícitamente por el compilador en la llamada. :-) –

Cuestiones relacionadas