Java 静态无参方法中如何获取调用类?

在 java 静态无参方法中获取调用类

在 java 中,实现在一个不带任何参数的静态方法中获取调用它的类的功能。

通过获取线程的堆栈信息,我们可以找到调用者的类信息:

public static void test() {
    StackTraceElement[] stack

Trace = Thread.currentThread().getStackTrace(); String className = stackTrace[2].getClassName(); Class clazz; try { clazz = Class.forName(className); System.out.println(clazz.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } }

在使用时,可以不传入任何参数直接调用该静态方法,该方法会通过堆栈信息获取并打印出调用它的类名。