Numéro de lignes - Galère

Résolu
cs_loofy Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008 - 22 oct. 2008 à 17:52
cs_loofy Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008 - 23 oct. 2008 à 10:55
Bonjour,
j'aimerai savoir comment je pourrais récupérer le numéro de ligne sur laquelle se trouve ma ligne de code comme pour un système de Log par exemple mais sans utiliser les systèmes du genre Log4J etc...
 
Je m'explique : j'aimerai par exemple avoir une fonction getNumeroLigne() qui me renverrai le numéro de ligne où est positionné l'appel de la fonction dans ma classe.
 
L1- String message = "Mon message : ";
L2- //Affichage du message
L3- System.out.println(Message+getNumeroLigne());
 
Cela m'afficherait : Mon message : 3
 
Merci de m'aider ou de me donner d'autres solutions qui me feraient avancer
 
Peut être une piste pour une éventuelle solution mais je ne sais pas du tout comment la mettre en œuvre :
http://weblogs.java.net/blog/zarar/archive/2005/11/sneaky_sneaky_l.html
 
Amicalement,

1 réponse

cs_loofy Messages postés 2 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 10:55
Bon une personne m'a trouvé une solution qui me convient pas mal : Je vous la donne comme on me l'a donné si ça peut aider quelqu'un un jour :
    Tu peux récupérer cette info (et d'autres) via le stacktrace :
Code :
 
 public static int getNumeroLigne() {
  StackTraceElement[] stack = new Throwable().getStackTrace();
  return stack[1].getLineNumber();
 }
 
Attention toutefois :
 
    * La génération du stack est coûteuse. Il est donc préférable de ne pas trop en abuser...
    * Cette information n'est pas forcément disponible (dans ce cas tu obtiendras -1) selon le type de compilation (l'option -g:none de javac supprime toutes les infos de debug)
 
Merci à adiGuba.
3
Rejoignez-nous