检测对象是否已覆盖 toString() [重复]

2023-12-24

我收到一个对象并需要记录它。其中一些有习惯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(使用前将#替换为@)

检测对象是否已覆盖 toString() [重复] 的相关文章

随机推荐