我收到一个对象并需要记录它。其中一些有习惯toString()
然后我想用它,但有些没有,我得到类似的东西mightypork.rogue.bus.events.MouseMotionEvent@2d19587d
.
我正在寻找一种动态(也许通过反射?)检查传入对象是否具有的方法toString()
覆盖自身。
String objToString(Object o)
{
if(???) {
return o.toString();
} else {
// fallback method
return o.getClass().getSimpleName();
}
}
边注:
它是一个事件总线系统,一些类可以根据实现的接口订阅并接收事件。我不可能要求所有客户端都具有 toString(),而且我想将此方法用于不止这一目的。
如果您使用Object getClass()
方法,您可以使用该类并调用getMethod().getDeclaringClass()
方法。如果是Object
,那么它不会被覆盖。否则,沿线的某个地方就会被覆盖。Source https://stackoverflow.com/questions/2315445/how-to-quickly-determine-if-a-method-is-overridden-in-java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)