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 :

gestion d'un tableau d'Object


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut gestion d'un tableau d'Object
    Bonjour,

    J'ai un pb avec Object.
    Je ne sais pas trop comment les gerer

    J'ai un tableau d'Object, que je souhaite alimenter avec des primitives ou bien des String...mais je bogue (oui c'est moi qui bogue)
    je me tape des exceptions..
    comment faire.
    mercid e votre aide

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Montre ton code et les erreurs générées car sinon on aura du mal à cerner le problème.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    alors j'ai une methode :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public void sauvegarder(Object o) throws tablePleineException {
        pile[pointeur] = o; 
        pointeur++;     
    }
    Exception in thread "main" java.lang.NullPointerException

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Où sont déclarées/initialisées tes variables pile et pointeur ?
    Quand tu poste un message d'erreur, poste le en entier (la trace de l'exception) car il y est généralement indiqué à quelle ligne de quel fichier se trouve l'erreur .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par niro75
    alors j'ai une methode :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public void sauvegarder(Object o) throws tablePleineException {
        pile[pointeur] = o; 
        pointeur++;     
    }
    Exception in thread "main" java.lang.NullPointerException
    Sans doute que tu n'as pas fait quelque part pile = new Object[nombre]; où nombre est un entier >= 0...

    Pour gérer les piles, tu as aussi l'objet LinkedList... Gérer des piles avec des pointeurs, c'est un peu "assembleur" comme méthode ça

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private static Object[] pile;
    private int pointeur = 0;
     
    public Pile() {
        ...
        Object zone = new Object[taille];
    }
     
     public void sauvegarder(Object o) throws tablePleineException {
        pile[pointeur] = o; 
        pointeur++;     
    }

    Exception in thread "main" java.lang.NullPointerException

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Bah oui, ton object pile n'est pas initialisé...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    mauvais copier/coller
    il fallait lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private static Object[] pile; 
    private int pointeur = 0;   
    public Pile(taille) {  
    ...
     Object pile= new Object[taille]; 
    }   
    public void sauvegarder(Object o) throws tablePleineException
     {  pile[pointeur] = o; pointeur++; 
     }

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par niro75
    mauvais copier/coller
    il fallait lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private static Object[] pile; 
    private int pointeur = 0;   
    public Pile(taille) {  
    ...
     Object pile= new Object[taille]; 
    }   
    public void sauvegarder(Object o) throws tablePleineException
     {  pile[pointeur] = o; pointeur++; 
     }
    Oui et bien il n'est toujours pas initialisé...

    Va voir dans les tuto pour les "bases" de java... Ta variable pile dans ton constructeur est une nouvelle (locale) variable pile... D'autant plus qu'elle est dans un contexte non static alors que l'autre est dans un contexte static...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    ce qui veut dire que l'instanciation dans le constructeur n'a de portée que dans le constructeur..??

    merci e de vos reponses...

  11. #11
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par niro75
    ce qui veut dire que l'instanciation dans le constructeur n'a de portée que dans le constructeur..??
    Non, pas du tout...
    Mais tu déclares une nouvelle variable là dans ton constructeur...

  12. #12
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Tu n'as pas bien lu ce que t'as dit ®om
    Citation Envoyé par ®om
    Ta variable pile dans ton constructeur est une nouvelle (locale) variable pile
    En effet, tu redéclare une variable pile qui est différente de celle de la classe, c'est donc elle qui est initialisée et pas celle de la classe.
    Pour initialiser le tableau de la classe, tu ne dois pas déclarer de variable locale pile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private static Object[] pile; 
    private int pointeur = 0;   
    public Pile(taille) { 
        ...
        pile= new Object[taille]; 
    }
    Comme l'a dit ®om, je te recommande de lire quelques cours pour te familiariser avec les bases.

    [edit] grilled [/edit]
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Par défaut
    alors là je suis paerdu, je vois d'ou vient le pb, mais je ne sais pas repndre :

    j'ai donc une classe Pile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Pile {
    public int taille;
     
    private static Object[] pile; 
    private int pointeur = 0;   
    public Pile(taille) {  
    ... 
    }   
    public void sauvegarder(Object o) throws tablePleineException
     {  pile[pointeur] = o; 
    pointeur++; 
    }
    et une classe qui instancie Pile :

    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
    public class traitement {
     
    private Pile p;
     
    try{
         p = new Pile(Integer.parseInt(getParameter("TAILLE")));
    }catch(Exception e){
             p = new Pile();
    }
     
    public void actionPerformed(ActionEvent ae){
     
        if(ae.getActionCommand().equals("sauvegarder")){
    	 String valeur = donnee.getText();
     
    	  try {
    	        p.sauvegarder(valeur);
    		} catch (tablePleineException e) {
    		 e.printStackTrace();
    		}
    }

    et c'est dans ce cas que j'ai mon exception

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Par défaut
    J'aurai tendance à dire que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private Object[] pile;  // <= Pas de static, variable d'instance
    private int pointeur = 0;   
    public Pile(taille) { 
        pile= new Object[taille]; // <= instanciation de la variable d'instance 
    }
    me semble plus adequat.

Discussions similaires

  1. [Débutant]Tableau d' Object / Tableau de String
    Par lfournial dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/09/2006, 14h33
  2. Réponses: 3
    Dernier message: 27/04/2006, 12h24
  3. Réponses: 3
    Dernier message: 14/03/2006, 05h19
  4. Déclaration d'un tableau d'Object
    Par elitost dans le forum Groovy
    Réponses: 1
    Dernier message: 19/10/2005, 14h15
  5. Gestion d'un tableau dynamique
    Par almisuifre dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/02/2005, 19h07

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