我需要在调用该方法的覆盖方法中获取类的名称
如何做呢?
Throwable t = new Throwable();
StackTraceElement[] elements = t.getStackTrace();
String calleeMethod = elements[0].getMethodName();
String callerMethodName = elements[1].getMethodName();
String callerClassName = elements[1].getClassName();
您可以使用 获取方法中当前对象的类this.getClass()
,或使用Thread.currentThread().getStackTrace()
遍历调用路径。
您可以通过以下方式获得课程:
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());