7
votes

Objet de retour générique

Récemment, je lisais la pièce de code suivante du tutoriel de collection Oracle lorsque je suis tombé sur ce code de code. XXX

Je n'ai pas pu comprendre pourquoi la valeur renvoyée est quelque chose xxx


1 commentaires

Tutoriels Java Article sur les méthodes génériques: docs.oracle.com/javase/tatuly /extra/generics/Methods.html


5 Réponses :


7
votes

Le type de retour est, en fait, simplement définit .

L'autre est là pour indiquer qu'il s'agit d'une méthode générique et d'indiquer que E est un paramètre au générique. Sans ce , le compilateur supposerait que E est une classe existante et essaierait de la localiser (produisant une erreur si aucune classe nommée E < / code> est dans la portée).


0 commentaires

2
votes

It est juste définir , un ensemble avec des éléments de type E pour être plus précis. L'extra devant le type de retour est la déclaration de type pour cette méthode, spécifiant que le type doit être utilisé uniquement dans la portée de cette Méthode particulière - à ne pas confondre avec un paramètre de type de classe ', comme celui-ci: xxx

dans l'extrait ci-dessus, le paramètre type est visible pour Toutes les méthodes de la classe, alors qu'une déclaration de type comme celle de votre question est visible uniquement dans cette méthode.


0 commentaires

2
votes

Le type de retour est définir pas définir . Le premier Déclarez la variable de type générique E , tandis que pour d'autres s joint aux classes de collecte utilise cette déclaration. < / p>


0 commentaires

0
votes

e peut être une classe. En renvoyant le définir Vous déclarez que E est un paramètre dans le générique.

Ceci est une fonction statique, il n'y a donc pas de définition sous-jacente de ce que E est.


0 commentaires

0
votes

Oui, le premier semble un peu bizarre. Une façon de penser à la première est que cela vous dit (ou vous rappelle) que le compilateur trouvera E pour elle-même , basé sur le type de collection transmis, et vous, l'utilisateur, don 't besoin de le dire explicitement ce que E est.


0 commentaires