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

Langage Java Discussion :

probleme d heritage.


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut probleme d heritage.
    Bonsoir,

    Je me retrouve face à la maudite erreure : nullpointerexception et je ne vois pas quoi faire...
    mon programme est construit de la maniere suivante.
    j'ai une principale FenetreSimulation qui herite d'une classe Coordinator qui herite elle meme d'une classe Simulation.

    Dans ma classe FenetreSimulation, je cree un element FenetreWizard et j'ai besoin de toucher de recuperer un element qui se situe dans la classe simulation et d en modifier un autre dans la classe coordinator.
    J
    'ai donc fait herite ma FenetreWizard de ma classe Coordinator et des que j'essaye d'acceder a un de ces elements il me fait un nullpointer alors que j'y accede sans probleme de part la classe FenetreSimulation qui herite de Coordinator elle aussi.

    Je dois faire une erreure sur mes heritages mais je ne vois pas laquelle, merci pour vos reponses.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Points : 62
    Points
    62
    Par défaut
    STP

    soit plus clair donne nous du code pour qu'on puisse voir un peu ce que tu fait car comme ca on peut vraiment rien te dire...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Moi non plus je ne vois pas mais as tu effectivement initialisé ton objet avec new ?
    Je pencherais plutôt pour ce type d'erreur.
    Fais voir ton code ici

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut
    Pardon, il est vrai que ce n'est pas facile à comprendre, mais le code est dense, donc je vais simplifier:

    J'ai une classe Simulation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Simulation {
    .
    .
    .
    }
    Puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Coordinator extends Simulation {
    .
    .
    .
    }
    Et:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class FenetreSimulation extends Coordinator {
    .
    Wizard toto = new Wizard();
    .
    }
    Avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Wizard extends Coordinator {
    supe');
                       //J'accede à mon objet en l'appellant comme s'il etait dans la classe
    listeES.size() //par exemple
    }
    J'espère qu'ainsi, cela va vous sembler plus clair.
    Merci pour votres aide.

  5. #5
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    ce n'est pas en simplifiant ton code qu'on va trouver la NullPointerException !!


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut
    Je mets les classes à disposition alors :

    http://perso.wanadoo.fr/artlittlegarden/Simulation.java
    http://perso.wanadoo.fr/artlittlegar...ordinator.java
    http://perso.wanadoo.fr/artlittlegar...imulation.java
    http://perso.wanadoo.fr/artlittlegar...rdFormule.java

    En sachant que la classe WizardFormule, ou se provoque l'exception
    est declenchée via une action d'un objet de la classe WizardAccueil.
    Et c'est dans FenetreSimulation que je cree un objet WizardAccueil.

    Note: comme il y avait une erreure, sur la version actuelle de wizardformule, j'ai fait passer les elements dont j'avais besoin en argument mais cette solution ne me plaisait pas.
    Dans la version de la classe avec l'erreure, je faisais simplement appel
    aux elements listeES et sequence et cela me declenchait l'exception.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class WizardFormule extends Coordinator {
    public void WizardFormule() {
    listeES.size() 
    sequence.size()
    }
    Merci pour votre aide

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Points : 62
    Points
    62
    Par défaut
    il faudrait suivre ton code à la trace, rechercher l'erreur et la ligne de l'erreur... pour savoir au moins quel est l'objet qui pose problème...

    La seule solution qui existe est de faire le debug de ton code ligne par ligne...

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut
    non mais les objets qui posent probleme sont ceux que j appelle dans WizardFormule : listeES et sequence et qui sont des objets de la classe Coordinator.
    Pourtant quand je les appelle dans FenetreSimulation qui extends aussi de Coordinator, ca marche tres bien

  9. #9
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    heu... les sources que tu as mis tu les as aussi simplifiées ? ? ?

    parce que WizardFormule n'extends pas Coordinator

    et je ne vois pas trace de listeES dans Coordinator ni dans Simulation...


    d'aute part une NullPointerException ca ne veut pas dire que la classe n'accède pas a l'objet. S'il ne le trouvait pas tu aurait un probleme a la compilation pas à l'exécution...

    Ensuite une NullPointerException signifie que tu appelle une méthode sur une référence à null

    ca veut tout simplement dire que au moment ou tu fais listeES.size(), listeES == null !

    tu les instancient quand et comment ton ArrayList (listeES) et ton TreeMap (sequence) ?

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut
    Regardes bien ma note et tu comprendras pourquoi il n y a pas d extends.

    En fait je crois avoir compris.
    Si X et Y sont deux classes.
    Lorsqu'on a X extends Coordinator et Y extends Coordinator
    Et imaginons que la classe coordinator soit une variable x
    Cela veut dire que la classe X et Y vont hériter chacun d'une variable x leur etant propre?
    Mon probleme viendrait de la.

  11. #11
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par ceres02
    Cela veut dire que la classe X et Y vont hériter chacun d'une variable x leur etant propre?
    c'est exact dans le cas général

    Par contre, si ta variable est déclarée en static dans Coordinator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected static Collection listeES;
    alors elle est commune à toutes les instances de Coordinator (et à toutes les instances des classes héritées du même coup )

    c'est juste ca que tu voulais je pense, une variable de classe et non d'instance.

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 56
    Points
    56
    Par défaut
    yep j'ai donc pensé à la mettre en static, mais ca plante sur un truc, je vais etudier ca de plus pres =)

    Edit: ca marche, en revanche le principe d'une variable static, c'est que tant que l'on a pas ferme le programme, elle n'est jamais reinitialise sauf quand on fait en sorte qu elle le soit, n'est ce pas ?

Discussions similaires

  1. probleme d'heritage tform1
    Par nosfer dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/05/2006, 13h33
  2. probleme d'heritage sur des chaines de caracteres
    Par pikiwiki dans le forum C++
    Réponses: 3
    Dernier message: 24/05/2006, 21h01
  3. Probleme d'heritage
    Par drcd dans le forum C++
    Réponses: 5
    Dernier message: 28/04/2006, 16h42
  4. [debutant] Probleme d heritage
    Par Treuze dans le forum Débuter
    Réponses: 20
    Dernier message: 21/04/2006, 12h46
  5. Probleme d'heritage curieux
    Par viddak dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/05/2005, 14h58

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