gpt4 book ai didi

java - 如何从 Java 父类(super class)的上下文中检索最低子类的名称?

转载 作者:行者123 更新时间:2023-12-02 11:17:37 24 4
gpt4 key购买 nike

理性

我希望在一些父类(super class)上有更详细的日志记录调试/日志输出,因此子类名称实际上不会影响实时性能或应用程序逻辑。我还认为,通常这样做是相当糟糕的设计,但我确实希望在开发运行期间记录此信息。

问题

假设我有一个如下所示的简单类结构,如何将子类的名称拉入父类(super class)而无需显式传递引用?

public abstract AbstractClass {
private Logger logger = LoggerFactory.getLogger(getClass());

public AbstractClass() {}

public void execute(ContextObject context) {
if (logger.debuggingEnabled()) {
String invokingClassName = ""; // <-- how do I get this?
logger.debug("Executing {}", invokingClassName);
}
// shared application logic is here...
}
}

public MyClass extends AbstractClass {
public MyClass() {}

@Override
public void execute(ContextObject context) {
super.execute(context);
// application logic...
}
}

我以前曾解析过堆栈跟踪,我怀疑如果我想要这些信息,我就必须走这条路。有谁知道可以为我执行此操作的库或好的代码片段?

最佳答案

this.getClass().getName()做这件事吗?即:

public void execute(ContextObject context) {
if (logger.debuggingEnabled()) {
String invokingClassName = ""; // <-- how do I get this?
logger.debug("Executing {}", this.getClass().getName());
}
// shared application logic is here...
}

关于java - 如何从 Java 父类(super class)的上下文中检索最低子类的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com