Petit test pour des pro du java
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:
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:
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:
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();
} |