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

Java Discussion :

probleme de type de return et appel methode


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut probleme de type de return et appel methode
    Bonjour,

    mon problème et suivant j'ai crée une classe personne qui contient deux attributs id et nom j'ai stocke ces informations dans une ArrayList la methode qui pose un probleme le type de retour sachant que je veux cette methode de retourne toutes les id et les nom volia ma classe:

    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
    import java.util.ArrayList;
    import java.util.Iterator;
     
    public class Personne {
    	ArrayList persones=new ArrayList<Personne>();
    	private long id;
    	private String nom="";
    	public  long getId(){
    		return id;
    	}
    	public String getNom(){
    		return nom;
    	}
    	public long setId(long id){
    		return id=id;
    	}
    	public String setNom(String nom){
    		return nom=nom;
    	}
    	public String getPersone(){
    		Iterator iterateur=persones.iterator();
    		while(iterateur.hasNext()){
    			long id=((Personne)iterateur.next()).getId();
    			String nom=((Personne)iterateur.next()).getNom();
    			return id+""+nom;
    		}
    		return null;
    	}
    public static void main(String arg[]){
     
    	Personne p1=new Personne();
    	p1.setNom("Amine");
    	p1.setId(0xAA3567B2C4F);
    	Personne p2=new Personne();
    	p2.setId(0xAA93B10CD00);
    	p2.setNom("Ali");
    	}
    }
    et j'ai aussi un erreur Le littéral 0xAA3567B2C4F de type int n'est pas compris dans la plage autorisée.

    Merci de m'aider a appeler la methode dans la classe et retourner toutes les id et les noms de ArrayList
    Dernière modification par tchize_ ; 09/05/2009 à 19h15.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Pas trop compris la question là, va falloir reformuler


    pour ton erreur: les int en java font 32 bit, soit 8 caractères hexadécimaux, hors ta valeur dans le code en fait 14 (donc 56 bits). Comme d'après ton code c'est un long et pas un int que tu veux, faut indiquer au compilateur que cette valeur dans ton code est un long, ca se fait pas un L en fin de constante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	p1.setId(0xAA3567B2C4FL);
    Je note aussi cette erreur partout dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public long setId(long id){
    		return id=id;
    	}
    tu attribue la variable locale id à elle même, ca fait pas grand chose. Ta variable locale cache ton champ de classe. Pour référencer le champ de classe, il faut faire appel au la constante implicite "this":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public long setId(long id){
    		return this.id=id;
    	}

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Merci beaucoup pour votre aide
    je veux precise ma question dans la methode getPersonne()qui contient le parcours de arraylist qui contient des personnes ce que j'ai pas compris comment mettre le type de retour et le type de methode static pour appeler et avoir leur resultat
    voila ma methode:
    xxxx:ce que je sais pas mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public XXXXX getPersone()
    	{
    		Iterator iterateur=persones.iterator();
    		while(iterateur.hasNext())
    		{
    			long id=((Personne)iterateur.next()).getId();
    			String nom=((Personne)iterateur.next()).getNom();
    			return id+""+nom;
    		}
    		return null;
    	}
    Merci Cordialement

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    ca c'est pas bon: tu va concaténer l'id d'une personne avec le nom de la personne suivante dans la liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    long id=((Personne)iterateur.next()).getId();
    			String nom=((Personne)iterateur.next()).getNom();
    			return id+""+nom;
    il vaudrait mieux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    		Iterator iterateur=persones.iterator();
    		while(iterateur.hasNext())
    		{
    			Personne p = (Personne)iterateur.next();
                            // faire qqch avec "p"
                            // .....
    		}
    	}
    ou encore mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		for (Personne p: persones){
                            // faire qqch avec "p"
                            // .....
    		}
    	}
    Maintenant, concernant cette méthode, ca m'a l'air un peu confus tout ca, avant de savoir ce qu'elle retourne et son code, ce serai bien d'avoir une petite idée de ce qu'elle est supposée faire.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    merci pour votre réponse mais ce que je veux une méthode qui retourne juste le id et le nom je pense avec l'instruction ca va retourne toutes les informations de la classe personne car moi j'ai beaucoup des attributs dans la classe pour simplifier j'ai ecrire juste deux attributs

    jusqu'a maintennant le probleme pas resolut

    Merci Beaucoup

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    je ne crois pas que ce soit un bonne idée de mettre la liste des personnes dans la classe Personne.

    quel est la structure de ton projet??

    et où est le code par lequel tu ajoutes des objets Personne à ta liste??

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai cree une seule classe pour tester cette methode de getPersonne()
    voila ma classe
    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
    import java.util.ArrayList;
    import java.util.Iterator;
     
     
    public class Personne {
    	ArrayList persones=new ArrayList<Personne>();
    	private long id;
    	private String nom="";
    	public  long getId(){
    		return id;
    	}
    	public String getNom(){
    		return nom;
    	}
    	public long setId(long id){
    		return id=id;
    	}
    	public String setNom(String nom){
    		return nom=nom;
    	}
    	public String getPersone()
    	{
    		Iterator iterateur=persones.iterator();
    		while(iterateur.hasNext())
    		{
    			long id=((Personne)iterateur.next()).getId();
    			String nom=((Personne)iterateur.next()).getNom();
    			return id+""+nom;
    		}
    		return null;
    	}
    public static void main(String arg[]){
     
    	Personne p1=new Personne();
    	p1.setNom("Amine");
    	p1.setId(0xAA3567B2C4FL);
    	Personne p2=new Personne();
    	p2.setId(0xAA93B10CD00L);
    	p2.setNom("Ali");
    	}
    }
    Merci de m'aider

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai fait cette classe et donne un message d'erreur java.lang.NullPointerException
    :

    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
    47
    48
    49
    import java.util.AbstractList;
    import java.util.ArrayList;
    import java.util.Iterator;
     
     
    public class Personne {
    	private long id;
    	private String nom="";
    	public  long getId(){
    		return id;
    	}
    	public String getNom(){
    		return nom;
    	}
    	public long setId(long id){
    		return id=id;
    	}
    	public String setNom(String nom){
    		return nom=nom;
    	}
    	public static String getPersone()
    	{
    		AbstractList persones = null;
    		Iterator iterateur=persones.iterator();
    		String str="";
    		while(iterateur.hasNext())
    		{
    			Personne per=(Personne)iterateur.next();
    			long id=per.getId();
    			String nom=per.getNom();
    			str+= id+""+nom;
    		}
    		return str;
    	}
    public static void main(String arg[]){
    	ArrayList persones=new ArrayList<Personne>();
     
    	Personne p1=new Personne();
    	p1.setNom("Amine");
    	p1.setId(0xAA3567B2C4FL);
    	Personne p2=new Personne();
    	p2.setId(0xAA93B10CD00L);
    	p2.setNom("Ali");
    	persones.add(p1);
    	persones.add(p2);
        getPersone();
     
    	}
    }
    Merci cordialement
    Dernière modification par Baptiste Wicht ; 09/05/2009 à 23h12. Motif: Ajout des balises CODE

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		AbstractList persones = null;
    		Iterator iterateur=persones.iterator();
    tu met persones à null et tu essaie immediatement de l'utiliser -> ca risque pas de marcher.

Discussions similaires

  1. appeller methode ou son return sans parametres
    Par borntodie dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 15/04/2011, 04h21
  2. [LG]Problèmes de types Booléen entier...
    Par youngeikichi dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2005, 23h27
  3. probleme de type numero auto
    Par unix27 dans le forum ASP
    Réponses: 4
    Dernier message: 25/11/2004, 12h53
  4. Probleme avec type de donnees
    Par kevinss dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 16h42
  5. [C#][WebServices] Appel methode avec une classe en paramètre
    Par bran_noz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/09/2004, 17h41

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