IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Erreur à la compilation:Problème de type et Problème methode static avec java.util.Vector


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Erreur à la compilation:Problème de type et Problème methode static avec java.util.Vector
    Bonjour,

    Je suis débutant en java et je dois réaliser une classe Personne avec un constructeur qui vérifie si le sexe est 'f' ou 'm' et l'ajoute a la liste (representé par une instance de la classe Vector)et leve une exception si aucun des critères ne correspond.

    J' ai un probleme avec ces 2 methodes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static Personne individuNommé(String nom)
    public static void afficheListe()
    voici le code de la classe Personne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    import java.util.*;
    public class Personne{
        String nom;
        String prenom;
        char sexe;
        Vector vect=new Vector();//création de la liste vide
     
        public Personne(String n,String p,char s){
            nom=n;
            prenom=p;
            try{
            if (s=='f'){
                sexe='f';
                vect.addElement(new Personne(n,p,s));//si s=='f' ajout de la personne dans la liste
            }else{
                sexe='m';
                vect.addElement(new Personne(n,p,s));//si s=='m' ajout de la personne dans la liste
            }
            } catch(ErreurSexe e) {//si ni 'f' ni 'm' levé de l'exeption
                System.out.println("Erreur de sexe\n"+e.getMessage());
            }           
        }
        public String toString(){
            return "je suis "+nom+" "+prenom+" de sexe"+sexe+".\n";
        }
        public String getNom(){
            return nom;
        }
        public static Personne individuNomme(String nom){
    	for(int i=0;i<vect.size();i++){//Parcours de la liste 
    	    try{
    		if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spécifié dans le paramètre se trouve dans la liste
    		    Personne p=vect.elementAt(i);
    		    return p;//renvoie l'instance du nom spécifié en paramètre 
    	    }
    	    }catch(NomInconnu e){//lève l'exception si le nom ne s'y trouve pas
    		 System.out.println("Nom inconnue\n"+e.getMessage());
    	    }
    	    }
        }
        public static void afficheListe(){
    	for(int i=0;i<vect.size();i++){//parcours de la liste 
    	    System.out.println(vect.elementAt(i));//affichage des elements de la liste
    	 }
        }
    }
    Quand je compile ma classe j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    % javac Personne.java
    Personne.java:34: non-static variable vect cannot be referenced from a static context
    	for(int i=0;i<vect.size();i++){//Parcours de la liste 
    	              ^
    Personne.java:36: non-static variable vect cannot be referenced from a static context
    		if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spésifié en paramètre se trouve dans la liste
    		   ^
    Personne.java:36: cannot find symbol
    symbol  : method getNom()
    location: class java.lang.Object
    		if(vect.elementAt(i).getNom()==nom){//si l'instance du nom spésifié en paramètre se trouve dans la liste
    		                    ^
    Personne.java:37: non-static variable vect cannot be referenced from a static context
    		    Personne p=vect.elementAt(i);
    		               ^
    Personne.java:37: incompatible types
    found   : java.lang.Object
    required: Personne
    		    Personne p=vect.elementAt(i);
    		                             ^
    Personne.java:47: non-static variable vect cannot be referenced from a static context
    	for(int i=0;i<vect.size();i++){//parcours de la liste 
    	              ^
    Personne.java:48: non-static variable vect cannot be referenced from a static context
    	    System.out.println(vect.elementAt(i));//affichage des elements de la liste
    	                       ^
    Note: Personne.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    7 errors
    Je suis vraiment perdu et je ne maitrise pas du tout le java alors tout aide est bienvenue.
    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 1 034
    Points
    1 034
    Par défaut
    faut que ton Vector soit statique et il faut qu'il soit typé. alors voila ce que tu dois changer pour que ca marche :

    Change la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector vect=new Vector();//création de la liste vide
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static Vector<Personne> vect=new Vector<Personne>();//création de la liste vide
    Ca devrait marcher.

    Mais sinon, ton programme est un peu baclé, tu devrais le repensé.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup ca marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme de lecture d'un fichier .txt avec java
    Par samorra dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/09/2009, 00h13
  2. Problème avec java.util.Scanner
    Par fab56 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/09/2009, 21h25
  3. Erreur de compilation : has incomplete type
    Par Plomeg dans le forum C++
    Réponses: 2
    Dernier message: 25/04/2009, 13h19
  4. problème avec java.util.zip.Inflater
    Par felix79 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/06/2007, 15h02
  5. Problème avec java.util.List
    Par alphonse62 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 11/06/2007, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo