这是后续更一般和类似的问题/答案 https://stackoverflow.com/questions/1696551/how-to-get-the-name-of-the-calling-class-in-java
In Java 8我可以使用调用该方法的类名新异常 https://github.com/apache/jmeter/blob/master/src/jorphan/src/main/java/org/apache/jorphan/logging/LoggingManager.java
String className = new Exception().getStackTrace()[1].getClassName();
但是我可以以静态方式获取类名吗?
edit
如果我在不同类的方法中并且想知道调用我的方法的类
从另一个类以静态方式获取调用类的类名的示例:
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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)