Jerarquia de llamada en Java
2007-10-20 06:37:48
Con el siguiente código podreis conocer la jerarquia de llamada de vuestro código en tiempo de ejecución, con la única limitación de que solo funciona a partir de Java 5:
public class Llamadas
{
static public void fin()
{
StackTraceElement trace[] = Thread.currentThread().getStackTrace();
for (StackTraceElement St : trace)
{
System.out.println(St);
}
}
static public void salto()
{
fin();
}
public static void main(String[] args)
{
salto();
}
}
Deberia devolver algo como...
java.lang.Thread.getStackTrace(Unknown Source)
pruebas.Llamadas.fin(Llamadas.java:7)
pruebas.Llamadas.salto(Llamadas.java:16)
pruebas.Llamadas.main(Llamadas.java:21)
El programa es extremadamente sencillo: la clase principal llama al método salto, que a su vez llama al método fin, que es el que contiene la llamada a getStackTrace, que es ni más ni menos que la pila de llamadas de subrutina.