Pour faire les calculs demandés, j'utilise un Map dont les clés sont un Set d'Objets et les valeurs sont des double.
Dans ma méthode de calcul, je fournis un set pour lequel je dois calculer la valeur qui est égale à la somme
des valeurs des sets inclus dans le Set fourni comme paramètre.(c'est à dire que tout d'abord je dois parcourir les clés et
je vérifie à chaque fois si chaque valeur qui est un Set est inclus dans le set fourni si c'est inclus alors je dois récupérer
la valeur)
Pour ce faire j'ai écrit la méthode suivante:
Sachant que la classe EnsembleObjets est déjà implémentée ayant comme attribut un Set d'Objets
un message d'erreur s'affiche:
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 public Test() { public Map<EnsembleObjets, Double>mapA; public double Somme(EnsembleObjets ens){ Double sum = 0.0; Set <EnsembleObjets>keysSet = mapA.keySet(); Iterator <EnsembleObjets>it = keysSet.iterator(); while (it.hasNext()){ EnsembleObjets ensObj =it.next(); if (ensObj.getEnsembleObjets().containsAll(ens.getEnsembleObjets())) { sum = sum + mapA.get(ens.getEnsembleObjets()); } } return sum; } public static void main (String[] args){ Test t = new T(); EnsembleObjets e1 = new EnsembleObjets(); e1.addObjets(new Singleton(new String("A"))); FocalElement e2 = new FocalElement(); e2.addObjets(new Singleton(new String("A"))); e2.addObjets(new Singleton(new String("B"))); e2.addObjets(new Singleton(new String("C"))); t.addObjets(e1, new Double(0.6)); t.addObjets(e2, new Double(0.4)); System.out.println("Sum of {A} "+t.Somme(e1)); } }
Exception in thread main java.lang.NullPointerException
Je n'arrive pas à voir où est le problème.
Merci
Partager