繁体   English   中英

如何分辨哪个派生类调用覆盖基础方法

[英]How to tell which derived class calling override base method

我正在使用Google Guava Event Bus调试Java应用程序。 在基类中定义了一个HandleEvent方法,它被多次调用。 我想打印每次被哪个派生类调用。 哪种调试方法可以做到这一点? 我当时在考虑使用Java反射,但仍在研究如何做。

要获取派生类的名称,您可以简单地使用getClass()

public void HandleEvent(...) {
    System.out.println("HandleEvent called for "+this.getClass().getName());
    ... // the rest of HandleEvent method
}

您可以检查此对象是否为intanceof类下的派生类的intanceof然后仅打印

你应该能够做

System.out.writeLine(getClass().getName())

在您的事件处理程序中获取此信息。

将一个喙点放在handleEvent方法中,一个断点命中,您可以在调试器中看到调用帧(堆栈)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM