Partage
  • Partager sur Facebook
  • Partager sur Twitter

Généricité avec HashMap

    23 octobre 2008 à 18:57:41

    Bonsoir les amis

    Voilà j'ai un petit programme avec de la généricité. Et j'ai une erreur de compilation.

    Voilà le programme

    import java.util.*;
    
    public class Genericite14 
    {
    	public static void main(String args[]) 
    	{ 
    		HashMap<String,Integer> hm  = new HashMap<String,Integer>();
    		Integer entier;
    		String chaine;
    
    		for (int i=0;i<10;i++)
    		{
    			entier = new Integer( (int) (Math.random() *10) );
    			chaine = "mot"+entier.intValue();
    			hm.put(chaine,entier);
    		}
    
    		Set clefs = hm.keySet();
    		Iterator iter = clefs.iterator();
    
    		while ( iter.hasNext() )
    		{
    			chaine = iter.next();
    			entier = hm.get(chaine);
    			System.out.println ("("+chaine+" , "+entier+")");
    		}
    	}
    }
    


    J'ai une erreur de compil à la ligne 23: incompatible types
    found : java.lang.Object
    required : java.lang.String

    je comprend pas car j'ai bien déclaré bon objet chaine de type String

    Si quelqu'un peut m'aider.
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      23 octobre 2008 à 19:09:03

      chaine = (String) iter.next();
      • Partager sur Facebook
      • Partager sur Twitter
        23 octobre 2008 à 19:14:24

        La méthode next() retourne un Object... Cast obligatoire !
        chaine = (String)iter.next();
        


        PS : Kacha a été plus rapide...
        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2008 à 19:16:41

          Sais tu pourquoi on est obligé de caster ? Je pensais que justement qu'avec la généricité ont été plus obligé

          Edit :
          Merci cysboy. J'aurai du aller voir la javadoc...
          • Partager sur Facebook
          • Partager sur Twitter

          Généricité avec HashMap

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown