Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2381 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Question sur la généricité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question sur la généricité

n°2037460
supermexic​ain
Posté le 21-11-2010 à 17:40:28  profilanswer
 

Bonjour à tous !
 
Voilà, j'ai une fonction qui doit retourner le minimum d'une liste qui peut contenir à la fois des entiers, des doubles, etc.
Le problème est que lors de l'utilisation de cette méthode pour une liste d'entiers, il me dit que : min = (listeNote.getNote(i)) attend un double en retour (normal min est de type double).
 
Ma question est : de quel type déclarer min, sachant que je peux utiliser des listes de nombres différents (int, double, etc.) ?
C'est un problème non seulement pour cette méthode, mais aussi pour moi car je n'arrive pas à saisir comment je pourrais résoudre ce problème dans d'autres situations.
 

Code :
  1. public static double getMinimum(ListeNotes<? extends Number> listeNote) {
  2.      
  3.         double min = listeNote.getNote(1).doubleValue();
  4.         for (int i = 1; i < listeNote.getNbNotes() + 1; i++) {
  5.             if (listeNote.getNote(i).doubleValue() <= min) {
  6.                 min = (listeNote.getNote(i);
  7.             }
  8.         }
  9.         return min;
  10.     }


 
Merci à tous ceux qui voudront bien m'éclaircir :)

mood
Publicité
Posté le 21-11-2010 à 17:40:28  profilanswer
 

n°2037680
mr simon
Posté le 22-11-2010 à 22:22:24  profilanswer
 

Tu converties toujours les objets de ta liste en double, pourquoi tu ne le fais pas ligne 9 ?
 
Sinon "listNote" est une liste Number, declarer "min" en tant que Number fera l'affaire. Si tu veux absolument un double en sortie, tu peux toujours appeler doubleValue() a la fin. Mais pour moi, cela a plus de sens de retourner un Number.
 

n°2037686
masklinn
í dag viðrar vel til loftárása
Posté le 22-11-2010 à 22:45:31  profilanswer
 

mr simon a écrit :

Tu converties toujours les objets de ta liste en double, pourquoi tu ne le fais pas ligne 9 ?
 
Sinon "listNote" est une liste Number, declarer "min" en tant que Number fera l'affaire. Si tu veux absolument un double en sortie, tu peux toujours appeler doubleValue() a la fin. Mais pour moi, cela a plus de sens de retourner un Number.
 


Pas mieux. Accessoirement, si tu veux garder ton type d'entrée tu peux aussi génériciser la méthode statique, et accessoirement:

  • Pourquoi tu indexes à partir de 1 [:pingouino dei] En Java, comme dans la majorité des langages, l'indexation se fait à 0
  • Pourquoi ne pas utiliser des collections standard, et des noms de méthodes standard du framework Collection? Genre Collection#size() et List#get(int) que n'importe quel dev java reconnaîtra plutôt que getNote() et getNbNote() qui ne va parler à personne (d'autant moins s'ils ne sont pas francophones)?
  • En parlant de Collection, il y a une méthode Collections#min(Collection), pourquoi réinventer la roue?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Question sur la généricité

 

Sujets relatifs
[RESOLU] vtable errorQuestion sur WebLogic
Question con sur une exception dans un constructeurQuestion simple : destruction variable automatique
Jointure SQL petite questionQuestion existentielle : free()
question sur auto_ptrQuestion de débutant en Ajax
question de designquestion sur static et multithread
Plus de sujets relatifs à : Question sur la généricité


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR