在Flutter中进行调试时,甚至只是将对象打印为String时,我都无法区分对象的不同实例。仅看9+行或调试器检查,Foo
,f1
和f2
代表多少f3
个实例?
相比之下,例如在Java中,每个实例都打印有其地址,并且易于区分。即使我们正在调试一些远离第5-7行的代码,仍然很容易看出存在两个实例。
我可以在调试过程中使用“求值表达式”来手动检查相等性,但是如果引用在不同的范围内,伸缩性不好,并且会很快复杂化。
还有其他更好的解决方案吗?
答案 0 :(得分:3)
您在控制台中看到的是toString()
方法。
您可以覆盖它以打印一些自定义信息。例如,大多数flutter小部件都将其覆盖以打印其参数。
可能的替代方法是添加哈希码:
@override
String toString() {
return super.toString() + " " + hashCode;
}