Quelle est la syntaxe pour donner explicitement les paramètres de type pour une méthode Java générique?Java-syntaxe pour spécifier explicitement des arguments génériques dans les appels de méthode
Répondre
Ce qui suit est pas la syntaxe
<ArgType>genericMethod()
Il semble que les types arguments doit venir après un point comme dans
SomeClass.<ArgType>genericMethod()
this.<ArgType>genericMethod()
p.<ArgType>genericMethod()
super.<ArgType>genericMethod()
SomeClass.super.<ArgType>genericMethod()
SomeClass.this.<ArgType>genericMethod()
Selon le Java specification qui serait par exemple:
Collections.<String>unmodifiableSet()
(Désolé pour poser et répondre à ma propre question - je cherchais juste ce pour la troisième fois :-)
A. bon exemple de java.util.Collection
de spécifier une méthode générique qui définit son propre type générique est Collection.toArray
où la signature de méthode ressemble à:
<T> T[] toArray(T[] a);
Ceci déclare un type générique T, qui est défini à l'appel de méthode par le paramètre T[] a
et renvoie un tableau de T. Ainsi, la même instance pourrait appeler la méthode toArray de façon générique:
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[]{});
Aussi, voir le java tutorial on generic type parameters.
Vous pourriez peut-être développer ceci avec la partie expliquant explicitement comment donner un paramètre de type à un appel (comparez ma réponse). Alors ce serait une bonne réponse canonique; tel qu'il est, il ne répond même pas à la question, puisque le paramètre est déduit implicitement par le compilateur dans l'appel. :-) –
- 1. méthode générique avec inférées arguments génériques
- 2. erreur génériques: non applicable pour les arguments
- 3. délégué invoquant des arguments génériques en C#
- 4. Comment spécifier des arguments lors du démarrage de l'émulateur Android dans Eclipse (pour effacer les données)
- 5. Tracing/trouver les appels de fonction et les arguments avancés par une méthode de classe AppKit
- 6. Utilisation Où spécifier différents génériques
- 7. méthodes génériques dans les types non génériques
- 8. Les génériques java et la méthode addAll
- 9. TSQL: Tous les avantages pour spécifier explicitement NVARCHAR dans une chaîne?
- 10. Ienumerable Méthode d'extension pour les appels de tableaux de dictionnaire
- 11. Accès aux arguments des arguments de méthode en C++
- 12. Présentation des appels de méthode de prototype
- 13. de Appels génériques <T>
- 14. Passer tous les arguments d'une méthode dans NSLog
- 15. Comment spécifier les types génériques sur les délégués?
- 16. Débogueur Java Eclipse obtenant les résultats des appels de méthode
- 17. Câbler StructureMap avec des arguments de type ouvert génériques
- 18. Une méthode plus rapide pour effectuer des contrôles sur les arguments de la méthode
- 19. Injection de dépendances dans .Net sans appels de méthode virtuelle?
- 20. appels de méthode récursive
- 21. PHP: Obtenir les arguments de la méthode?
- 22. Mettre des appels de méthode dans une ArrayList?
- 23. Comment obtenir tous les attributs supplémentaires de Magento Product sans les spécifier explicitement
- 24. Effectuer des appels asynchrones dans une méthode de services RIA
- 25. Appels génériques à OnResetDevice() et OnLostDevice()
- 26. Trouver des appels de méthode lents/inefficaces dans dotnet
- 27. Comment Vuong (méthode) Interceptor avec des composants génériques d'installation
- 28. Tronquer les appels à la méthode
- 29. F #: Pourquoi dois-je spécifier explicitement 'unit' pour les fonctions ne prenant pas d'argument?
- 30. Gestion des erreurs dans les appels getJSON
Si je comprends bien répondre à votre question est tout à fait acceptable , tant que ce n'est pas un doublon (c'est-à-dire ne pas aller à la rep-chasse de cette façon). –
Si c'est pour la postérité, autant corriger la faute de frappe dans l'exemple ;-). –
Vous devriez probablement accepter votre propre réponse :) – bacar