这个问题
的一条评论中提到了这一点:强制调用基类方法想知道是否有办法强制使用Object.toString而不是MyClass.toString。只需要它来调试日志(想要查看库是否正在创建多个对象或重用同一个对象(。例如,类似的东西
myObject.Object::toString()
这很容易做到吗?我们正在使用 java8
不,这不容易做到。但没有必要。如果需要默认toString()
方法打印的十六进制数,请调用 System.identityHashCode()
。
不,据我所知,在 java 中这是不可能的。但是,有一些解决方法:
解决方法 1:
class MyObject {
public String toString() {
return super.toString() + <whatever_of_my_object>;
}
}
解决方法 2:
class MyObject {
public String toIdentityString() { // this is your custom function you can call it foo
return super.toString();
}
}
然后使用 toIdentityString 打印对象的 id