Bonjour à tous,
J'ai l'occasion de retravailler sur un projet en Java, après une "abstinence" de près de 3 ans. Après avoir rencontré différents petits problèmes que j'ai pu résoudre par moi-même, je fais maintenant face à un souci que mes recherches sur Google ne m'ont pas aidé à résoudre.
J'ai implémenté un singleton en utilisant une nouvelle possibilité offerte depuis Java 6 (cfr. http://www.vogella.com/articles/Desi...n/article.html) et essaie de faire du logging dans ce singleton en utilisant log4j. Cela donne quelque chose du genre:
Le problème est que dans la méthode doSomething(), LOG est toujours égal à null et donc badaboum! Je peux concevoir qu'une class n'est pas tout à fait la même chose qu'une enum mais ne suis pas suffisamment expert pour en cerner toutes les subtiles différences. Cela doit sans doute poser un problème à Log4j?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 package mypackage; public enum MyEnumSingleton { INSTANCE; private final static Logger LOG = Log.getLogger(MyEnumSingleton.class) public doSomething() { LOG.debug("->doSomething()"); //do something LOG.debug("<-doSomething()"); } }
Demain je ferai un test en définissant dans mon singleton une autre variable static pour voir si son initialisation se passe correctement ou pas (j'imagine que oui). Cela permettra de cibler davantage le problème. Je compte également utiliser intensivement le debugger.
Avez-vous déjà rencontré ce problème? Comment l'avez-vous solutionné?
D'avance, merci pour vos lumières.
Brolon
Partager