这是 more general and similar question/answers 的后续内容
在Java 8中,我可以使用 new Exception 获取调用该方法的类名
String className = new Exception().getStackTrace()[1].getClassName();
但是我可以以静态方式获取类名吗?
编辑
如果我在不同类的方法中并且想知道调用我的方法的类
最佳答案
从另一个类以静态方式获取调用类的类名的示例:
public class Main {
public static void main(String[] args) {
example();
}
public static void example() {
B b = new B();
b.methodB();
}
}
class B {
public void methodB(){
System.out.println("I am methodB");
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
StackTraceElement element = stackTrace[2];
System.out.println("I was called by a method named: " + element.getMethodName());
System.out.println("That method is in class: " + element.getClassName());
}
}
以静态方式获取完全限定类名的示例:
MyClass.class.getName();
关于java - Java 8中以静态方式获取类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58224688/