Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2022 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?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?

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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)