Erreur JAVA

Résolu/Fermé
Ephedra Messages postés 8 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 9 juin 2006 - 2 juin 2006 à 13:05
Ephedra Messages postés 8 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 9 juin 2006 - 2 juin 2006 à 13:42
Bonjour,

voici mon code pour ajouter supprimer etc.. un utilisateut

import java.util.*;

public class EnsembleUtilisateurs
{
    private HashSet utilisateurs = new HashSet ();
   
    public void ajouter (Utilisateur utilisateur)
    {
        if (utilisateur != null)
            this.utilisateurs.add(utilisateur);
    }
    public void supprimer (Utilisateur utilisateur)
    {
        if (utilisateur != null)
            this.utilisateurs.remove(utilisateur);
    }
    public boolean contient (Utilisateur utilisateur)
    {
        return this.utilisateurs.contains(utilisateur);
    }   
    public Iterator iterator ()
    {
        return this.utilisateurs.iterator();
    }
}

Voici le message d'erreur pour la ligne en rouge :

Type safety: The method add(Object) belongs to the raw type HashSet. References to generic
 type HashSet<E> should be parameterized

Je n'arrive pas a comprendre  l'erreur.

merci d'avance.

3 réponses

HSylvio Messages postés 116 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 juin 2012
2 juin 2006 à 13:32
Il faut que tu designes le type des variables dans ton HashSet, comme pour une linked list, avec
private HashSet utilisateurs  = new ...........
au lieu de
private HashSet utilisateurs = new HashSet ();

Enfin je crois bien que c'est ca;
Bonne prog.
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 juin 2006 à 13:33
Salut,


ca te génère une erreur ou alors un warning?

sinon le message est normal tu utilise le jdk 1.5 qui se base sur la
programation générique soit l'utilisation des templates ce qui a plein
d'avantage comme la suppresion des cast lors des récupération de
valeur, sinon pour ne plus avoir ce message il te faut rendre ton
HashSet générique soit :


public class EnsembleUtilisateurs

{

    private HashSet utilisateurs = new HashSet ();

   

    public void ajouter (Utilisateur utilisateur)

    {

        if (utilisateur != null)

             this.utilisateur.add(utilisateur);

    }

    public void supprimer (Utilisateur utilisateur)

    {

        if (utilisateur != null)

            this.utilisateurs.remove(utilisateur);

    }

    public boolean contient (Utilisateur utilisateur)

    {

        return this.utilisateurs.contains(utilisateur);

    }   

    public Iterator iterator ()

    {

        return this.utilisateurs.iterator();

    }


}


si tu fesais la meme chose avec un Vector pourrais faire ce qui suit sans faire le moindre cast


private Vector utilisateurs = new Vector ();


public Utilisateur getUser(int index){

    return utilisateur.get(index);

}


avec le jdk 1.4 tu devais faire


private Vector utilisateurs = new Vector ();



public Utilisateur getUser(int index){


    return (Utilisateur)utilisateur.get(index);


}

WORA
3
Ephedra Messages postés 8 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 9 juin 2006
2 juin 2006 à 13:42
J'ai trouvé, c'est un message d'avertissement.

Je travaille avec un objet.

Je devrais faire une operation de cast.
0
Rejoignez-nous