12
Vorrei sapere se è possibile accedere allo stack di chiamate da un metodo per vedere quale metodo in quale pacchetto si chiama quello in cui ci troviamo ora?Accesso allo stack di chiamate Java
O forse c'è un altro modo per farlo?
Grazie,
ExtremeCoder
P.S. Questo è tutto in Java
+1: Certamente non dovrebbe cambiare il comportamento basato sul chiamante, ma quello sopra è esattamente come ottenere le informazioni. Inoltre, se sei bloccato con 1.4 allora devi andare in giro con le eccezioni per ottenere le informazioni; vale la pena eseguire l'aggiornamento a Java5 anziché eseguire questi tipi di hack IMO. –
Oh, l'altro caso per fare cose con la lettura dello stack è se si stanno facendo contesti di sicurezza, ma è davvero molto meglio usare gli strumenti della politica di sicurezza che avete già ottenuto per quello. –
La risposta è corretta, ma non sono d'accordo sull'utilizzo di questo solo per il debug. Nella mia applicazione ho scritto un wrapper al Log4j che invia i messaggi di registrazione all'appender in base al nome del chiamante. Quindi puoi aggiungere un messaggio di log con una sola riga, senza chiamare esplicitamente a 'Logger.getLogger()' nel codice. È possibile chiamare la funzione di registrazione uno scopo di debug, ma comunque. – jutky