当调试时,我不知道如何区分对象的不同实例,甚至只是将对象打印为字符串。只要查看行9+或调试器就可以检查f1、f2和f3代表了多少个Foo实例?

相反,例如,在Java中,每个实例都有其地址,并且易于区分。即使我们在一些远离第5-7行的代码中进行调试,也很容易看出存在两个实例。

我可以在调试期间使用“计算表达式”手动检查是否相等,但如果引用在不同的范围内,则不能很好地伸缩,而且会很快变得复杂。
还有其他更好的解决方案吗?
发布于 2018-11-18 14:48:18
您在控制台中看到的是toString()方法。
您可以重写它以打印一些自定义信息。例如,大多数颤振部件都会重写它来打印它们的参数。
一种可能的重写方法是添加哈希代码:
@override
String toString() {
return super.toString() + " " + hashCode;
} https://stackoverflow.com/questions/53361958
复制相似问题