![](/img/trans.png)
[英]Passing Derived Class to a method which needs to override expecting a base class
[英]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.