Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/12/2008, à 17:57

ilym

[Resolu] Erreur execution Java : java.lang.NullPointerException

bonjour,
comme l'indique le titre, j'ai une erreur execution : java.lang.NullPointerException

Voiçi les morceaux de codes d'où viendrait le pb :
   

public IFigure pleinDeIPoints(int nbr) {
        IFigureComposee res = this.factory.nouvelleFigureComposeeVide();
        for (int i = 0; i < nbr; i++) {
            IPoint p = this.factory.nouveauPoint(Math.random(), Math.random());
            res.ajouteSousFigure(p);
        }
        return res;

    }
import java.util.ArrayList;
	

public class FigureComposee implements IFigureComposee {

    public ArrayList <IFigure> figs;
    
    public FigureComposee() {
        this.figs = new ArrayList <IFigure>();
    }
    
    public void ajouteSousFigure(IFigure sousFig) {
        this.figs.add(sousFig);
    }
// ...etc...}

où est le pb ? Comment le résoudre ?
merci de votre aide

Dernière modification par ilym (Le 05/12/2008, à 08:34)

Hors ligne

#2 Le 01/12/2008, à 18:42

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

NullPointerException n'est pas une erreur de compilation mais une erreur d'exécution.
Elle se produit quand tu déréférences une variable qui vaut null ; autrement dit, quand tu fais taVariable.uneMethode() et que taVariable est null.

Dans ton exemple, factory pourrait être null par exemple. Mais il suffit de regarder la ligne où cette exception est levée, tu trouveras tout de suite smile

Hors ligne

#3 Le 01/12/2008, à 18:53

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

daccord. Voiçi les lignes juste au dessus du premier code :

public class TesteurSansTransformation {

    public IFigureFactory factory;

    public TesteurSansTransformation(IFigureFactory factory) {
        this.factory = factory;
    }

    public IFigure pleinDeIPoints(int nbr) {
        IFigureComposee res = this.factory.nouvelleFigureComposeeVide();
        for (int i = 0; i < nbr; i++) {
            IPoint p = this.factory.nouveauPoint(Math.random(), Math.random());
            res.ajouteSousFigure(p);
        }
        return res;

    }

Donc apparamment factory n'est pas null. C'est pour cela je ne vois vraiment pas d'où vient cette erreur.

Mais il suffit de regarder la ligne où cette exception est levée, tu trouveras tout de suite

voiçi donc :

init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.NullPointerException
        at fr.****.geo2d.FigureComposee.ajouteSousFigure(FigureComposee.java:23)
        at fr.****.tps.m2.dessin2DV1.test.TesteurSansTransformation.pleinDeIPoints(TesteurSansTransformation.java:34)
        at fr.****.tps.m2.dessin2DV1.test.TesteurSansTransformation.testPrincipal(TesteurSansTransformation.java:105)
        at fr.****.geo2d.TestFdB.main(TestFdB.java:19)

Donc l'erreur viendrait de ajouteSousFigure()
Je ne vois vraiment pas ce qui provoque cette variable NULL....
Peut être vois-tu l'erreur ?

Dernière modification par ilym (Le 01/12/2008, à 18:56)

Hors ligne

#4 Le 01/12/2008, à 21:33

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Personne n'est incollable sur la programmation ?

Hors ligne

#5 Le 01/12/2008, à 22:12

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

IFigureComposee res = this.factory.nouvelleFigureComposeeVide();

Après ça res est null alors smile
Regarde dans nouvelleFigureComposeeVide();

Hors ligne

#6 Le 01/12/2008, à 22:27

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

la voiçi :

    public IFigureComposee nouvelleFigureComposeeVide() { 
        return new FigureComposee();
    }

Hors ligne

#7 Le 02/12/2008, à 00:24

Respawner

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

sousFig == null ?

Hors ligne

#8 Le 02/12/2008, à 08:21

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

sousFig == null ?

a bon? je pense pas puique sousFig est un paramètre. A moins que je ne me trompe.

Hors ligne

#9 Le 02/12/2008, à 08:43

Aneldix

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Il semble que si. Comment l'as tu initialisée?

Hors ligne

#10 Le 02/12/2008, à 08:48

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

pas besoin de l'initaliser puisque c'est un paramètre :

    public void ajouteSousFigure(IFigure sousFig) {
        this.figs.add(sousFig);
    }


c'est le seul endroit où il y a sousFig
donc je vois pas

Hors ligne

#11 Le 02/12/2008, à 10:01

Respawner

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Ouai mais quand tu utilises cette méthode tu lui donnes bien un paramètre.
Vérifie qu'il n'est pas null.
Y'a une méthode infaillible pour ça tongue

public void ajouteSousFigure(IFigure sousFig) {
    if (sousFig == null) {
        System.out.println("Hehooooo !");
        return;
    }
    this.figs.add(sousFig);
}

Hors ligne

#12 Le 02/12/2008, à 10:02

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Juste après cette ligne :

IFigureComposee res = this.factory.nouvelleFigureComposeeVide();

Rajoute :

System.err.println("res = " + res);

Hors ligne

#13 Le 02/12/2008, à 13:21

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Aucune de ces deux méthodes ne fonctionnent, le programme me donne toujours la même erreur.... Je comprend vraiment pas.

Dernière modification par ilym (Le 02/12/2008, à 13:34)

Hors ligne

#14 Le 02/12/2008, à 13:40

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Ce que je t'ai indiqué au #12, évidemment que ça ne résoud pas le problème, mais ça t'affiche un message sur la sortie d'erreur standard...

C'est ça qu'il faut regarder smile

Hors ligne

#15 Le 02/12/2008, à 13:43

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

non justement, ça n'affiche rien de nouveau justement, c'est toujours la même erreur qui s'affiche

Hors ligne

#16 Le 02/12/2008, à 14:00

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Non mais "avant" le NullPointerException.
Si ça n'affiche rien, ça veut dire que l'exécution ne passe même pas par là.

Hors ligne

#17 Le 02/12/2008, à 16:31

Martopioche

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Et en utilisant un déboggueur ?

Enfin, moi je dis ça...

Hors ligne

#18 Le 02/12/2008, à 16:32

®om

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Martopioche a écrit :

Et en utilisant un déboggueur ?

Enfin, moi je dis ça...

lol

Hors ligne

#19 Le 02/12/2008, à 18:09

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

non dsl il n'y a absolument rien de plus.... mais si tu veux, je peux te donner le source complet pour que tu y jetes un coup d'oeil ?

Hors ligne

#20 Le 05/12/2008, à 07:44

enguerran

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Si tu n'as pas encore résolu ton problème, envoie le source complet, on pourra t'aider plus facilement...
Sinon passe ton post en [Résolu] ^^

Dernière modification par enguerran (Le 05/12/2008, à 07:45)


Ubuntu Lucid (qui fonctionne au poil ^^)

Hors ligne

#21 Le 05/12/2008, à 08:35

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

c'est bon, ça s'est résolu tout seul. Après avoir juste fait un format code avec Netbeans (une option pour bien justifié le code de manière présentable) sur la fonction main, ça à marché. Donc ce n'était en aucun cas un pb de NullPointerException mais plutôt un vilain bugue de Netbeans.

Hors ligne

#22 Le 05/12/2008, à 10:12

Mathieu147

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

Ça serait étonnant que ce soit un bug de Netbeans, une nullpointerexception...

Par contre avec NEtbeans, utilise le débogueur: mets un point d'arrêt, puis avec F7 et F8, exécute le code pas à pas. En mettant ta souris sur une variable, tu vois "en temps réel" sa valeur.

Et avec ça tu vas gagner plein de temps!


Pffff…

Hors ligne

#23 Le 05/12/2008, à 18:21

ilym

Re : [Resolu] Erreur execution Java : java.lang.NullPointerException

pourtant je ne vois pas d'autre explication. je n'ai pas changé une virgule de mon code et tout à remarché d'un seul coup...

Hors ligne