可以通过“Thread.currentThread().getStackTrace()”,来获得当前调用堆栈。从而获得所需要的调用类及方法。
package demo;
public class Main {
public static void main(String[] args) {
//JFinal.start("webRoot", 8080, "/");
Main m = new Main();
m.a1();
}
public void a1(){
new A().a();
}
}
class A{
public void a(){
new B().b();
}
}
class B{
public void b(){
new C().c();
}
}
class C{
public void c(){
StackTraceElement[] es = Thread.currentThread().getStackTrace();
for(StackTraceElement e : es){
System.out.println(e.getClassName());
}
}
}
运行结果: