0

我需要在调用该方法的覆盖方法中获取类的名称

如何做呢?

4

3 回答 3

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

类 StackTraceElement 有各种方法,如

String calleeMethod = elements[0].getMethodName(); 
String callerMethodName = elements[1].getMethodName(); 
String callerClassName = elements[1].getClassName(); 
于 2013-02-04T09:04:49.207 回答
3

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

于 2013-02-04T09:06:57.533 回答
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());
于 2013-02-04T09:03:55.730 回答