Bien le bonjour le forum !
j'ai une question super importante pour mon projet et pour moi même :
j'ai du pour mon projet récupérer du très vieux code (datant de java 1.2) qui me pose de gros problèmes :
en effet ce code génère très vite des erreurs à l'execution, et certaines erreurs je ne sais pas trop comment bien les corriger, en effet voici un code super réduit :
Vous remarquerez très vite que ce code à l'execution génère une NullPointerException sur la ligne qui permet d'initialiser Toto en utilisant _colors, en effet à ce moment, le code n'est qu'à la première ligne du code, et donc _colors n'est pas encore initilalisé
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 public class Plop extends JPanel { private final Fills _fills = new Fills(); private final Colors _colors = new Colors(); public Plop() { ... } public void uneMethod() { _colors.autreMethode(); } private final class Colors { private boolean att = false; Colors() { ... } public void autreMethode() { ... } } private final class Fills { private Toto _info = Toto(_colors.att); Fills() { } } }
Je sais comment corriger ce code vite fait, il suffit d'intervertir les deux lignes d'init (ainsi _color est initialisé avant _fills) mais si pour une raison ou une autre on venait à réintervertir les lignes, on retombe dans le même problème.
Comment faudrait-il faire pour recoder cette classe de manière propre ?
Avec des init à null et toutes les init dans le constructeur ?
Autrement ?
Merci d'avance.
Partager