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

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

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
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;
 
    }
 
    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;
 
    }
}
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
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...}
java renvoie cette erreur :
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()
où est le pb ? Comment le résoudre ? je ne vous pas d'où vient cette erreur.
merci de votre aide