¿Cuál es la sintaxis para dar explícitamente los parámetros de tipo para un método Java genérico?sintaxis Java para especificar explícitamente argumentos genéricos en llamadas a métodos
Respuesta
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()
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 :-)
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.
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. :-) –
- 1. Métodos genéricos y argumentos opcionales
- 2. sobrecarga de métodos y argumentos con los genéricos en Java
- 3. métodos genéricos y Tipo Inferencia en Java
- 4. Optimización del compilador de Java para llamadas a métodos repetidos?
- 5. ¿Cuándo debería especificar explícitamente StructLayout?
- 6. Java: métodos genéricos y números
- 7. Parámetros enlazados de Java en métodos genéricos
- 8. ¿Cómo especificar explícitamente una ruta a Firefox para Selenium?
- 9. F #: ¿Por qué debo especificar explícitamente 'unit' para las funciones que no toman argumentos?
- 10. Comodines contra métodos genéricos
- 11. ¿Puedo especificar explícitamente NavigateUrl en un hipervínculo?
- 12. genéricos de Java, singletons y métodos estáticos
- 13. métodos genéricos burlando de
- 14. Tipo de retorno de Java métodos genéricos
- 15. VB.NET genéricos a sintaxis de C#
- 16. Escriba la inferencia para los argumentos de tipo de los métodos genéricos
- 17. Interceptar llamadas a métodos en PHP
- 18. Llamadas a métodos de interceptación en Python
- 19. genéricos error: no aplicable para los argumentos
- 20. taquigrafía cuando se llama a métodos genéricos en C#
- 21. Compilación condicional de métodos genéricos
- 22. Métodos java sobrecargados ambiguos con genéricos y varargs
- 23. Los argumentos de tipo no se pueden deducir del uso. Intente especificar los argumentos de tipo explícitamente
- 24. C# RealProxy: métodos genéricos?
- 25. .NET: inferidos tipos genéricos sobre los métodos estáticos
- 26. Definición de métodos genéricos
- 27. ¿Cómo refactorizar estos métodos genéricos?
- 28. JMock Permitir otras llamadas a métodos
- 29. Guardar y reutilizar el bloque para llamadas a métodos
- 30. ¿Cómo encuentro las llamadas a los métodos?
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). –
Si es para la posteridad, podría corregir el error tipográfico en el ejemplo ;-). –
Probablemente deberías aceptar tu propia respuesta :) – bacar