在java调试中应用toString副作用吗?

在eclipse中调试java代码时,如果单击其中一个变量名,则会打印该对象。对象的toString()方法用于打印它。如果某些toString方法有副作用并且我点击该类型的变量,它的toString的副作用是否会被应用(并且无疑会使所有内容变得混乱)?     
已邀请:
我想你回答了自己的问题。无论何时调用
toString
,在调试或其他情况下,都会发生所有副作用。这正是你应该避免在toString中出现副作用的原因。     
我想是这样的。您可以通过编写一些类的toString方法来测试它,以便它生成输出到文件(或执行在调试器外部可以观察到的其他内容),然后让调试器显示该类型的变量。     
JVM无法选择“应用”副作用。如果使用toString()方法获取字符串表示,则必须执行它,并且无法执行副作用。毕竟,副作用可能会影响字符串表示的计算方式。     

要回复问题请先登录注册