如何检查哪个类调用了一个方法

时间:2013-02-04 09:00:11

标签: java

我需要在一个已经调用方法

的重叠方法中获取类的名称

怎么做?

3 个答案:

答案 0 :(得分:3)

Throwable t = new Throwable(); 
StackTraceElement[] elements = t.getStackTrace(); 

Class StackTraceElement has various methods like

String calleeMethod = elements[0].getMethodName(); 
String callerMethodName = elements[1].getMethodName(); 
String callerClassName = elements[1].getClassName(); 

答案 1 :(得分:3)

您可以使用this.getClass()在方法中获取当前对象的类,或使用Thread.currentThread().getStackTrace()来遍历调用路径。

答案 2 :(得分:2)

你可以通过以下方式获得课程:

class.getMethod("your_over-ridden_method_name").getDeclaringClass();

例如:

System.out.println(class.getMethod("your_over-ridden_method_name") + " declared by " + class.getMethod("your_over-ridden_method_name").getDeclaringClass());