J'essaie d'écrire une méthode d'impression générique qui fonctionne pour toutes les classes qui implémentent l'interface "itérable" mais je reçois l'erreur "La méthode impression (t []) dans La liste de types n'est pas applicable pour les arguments (arraylist) " p> p>
4 Réponses :
Votre paramètre est vous en avez besoin parce que vous ne voulez pas d'un t [] code>. Qui est un tableau d'un type qui étend ibler code>. Vous voulez simplement t code>. Mais vous avez également besoin d'une variable de type pour le paramètre de type dans iTHEREFT code>. Vous avez besoin de iérhable
Je pense que impression (itérable >) Code> irait aussi à moins que je lisais trop vite.
@Paulbellora Yeah, tu as raison. Cela fonctionne aussi (et probablement mieux dans ce cas). C'est amusant de jouer avec des génériques.
si t code> s'étend ibler code> alors faites-le simplement: <T extends Iterable<?>>
Cela ne compilera pas non plus.
Oui, je suis juste à la recherche de plus près de sa définition générique qui n'a probablement pas raison ..
Votre définition générique n'est pas correcte. Vous essayez de définir les limites sur Vous pouvez le faire fonctionner en introduisant un paramètre générique distinct: un pour indiquer la collection et une pour indiquer les valeurs de la collection. P> sidenote: vous n'avez pas besoin sortie p> integer code>) n'est pas le t code>. t [] code> du tout. Vous voulez juste t code>. P>
comme system.out.println code> accepte tous les objets code> s, et vous n'utilisez pas vraiment vos génériques dans la méthode, je ne vois aucune raison d'utiliser des génériques du tout . Ce code accomplira la même chose: MyClass[] objects = new MyClass[5];
print(objects);
Vous ne voulez probablement pas nommer votre liste
code>. En outre, la listeT code> dans code> n'est pas la même que le t code> dansStatic public> Liste d'impression annulée (T []) code>.