Bonjour,
Dans une application, je me suis retrouvé confronté à une null pointer exception. Ce genre de problème est en général simple à résoudre. Là, la correction a été un peu plus subtile. Du coup je vous propose de la chercher. J'espère que ça vous amusera un peu
La règle : ne pas utiliser le debugger => trop facile
Eviter les corrections du genre si truc == null alors truc = new Machin();
La correction ne demande en fait qu'une très très légère modification.
Voilà une version simplifiée des classes qui vont vous permettre de reproduire le bug.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package com.test.java; public class Application { public static void main(String[] args) { new Fille().printMessage(); } }
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 package com.test.java; public class Fille extends Mere { private String message = null; public Fille() { super(); } public void initialiseFille() { System.err.println("1. J'initialise l'object message"); message = "Bonjour le monde"; System.err.println("2. Sa valeur est : " + message); } public void printMessage() { System.err.println("3. J'affiche la taille du message"); System.err.println("Taille du message = " + message.length()); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package com.test.java; public abstract class Mere { public Mere() { initialiseMere(); } private void initialiseMere() { initialiseFille(); } public abstract void initialiseFille(); }
Partager