2010-06-10 2 views

Répondre

6

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() 
48

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 :-)

+3

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). –

+0

Si c'est pour la postérité, autant corriger la faute de frappe dans l'exemple ;-). –

+0

Vous devriez probablement accepter votre propre réponse :) – bacar

4

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.

+3

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. :-) –

Questions connexes