【发布时间】:2018-05-23 05:55:11
【问题描述】:
可以说,我有
public class ClassA {
public static void main(String[] args) {
ClassB.methodB();
}
}
我正在调用另一个类的静态函数
public class ClassB{
public static void methodB() {
System.out.Println("<I want to print the classname of classA>");
}
}
我如何做到这一点?
【问题讨论】:
-
真的有必要吗?这似乎是一个 hacky XY 问题。为什么需要这个?
-
您可以使用与 java 9 docs.oracle.com/javase/9/docs/api/java/lang/StackWalker.html 一起使用的 stackwalker 并在您的堆栈中“退后一步”.. 但这很脏 ;-)
-
好吧,我正在尝试使用 Log4j,但我不想在每个类中都创建静态 Logger 对象。所以我创建了一个 BaseLogger 类,它使用一些自定义静态日志记录功能扩展了 Logger (Log4j)。当我从另一个类调用我(在 BaseLogger 类中)创建的这些函数时,它们正在记录 BaseLogger 的类名,但我想打印的是调用类名。
标签: java