toString的副作用是否应用于java调试?

toString的副作用是否应用于java调试?,java,eclipse,debugging,tostring,side-effects,Java,Eclipse,Debugging,Tostring,Side Effects,在eclipse中调试java代码时,如果单击其中一个变量名,则会打印该对象。对象的toString()方法用于打印它。如果某个toString方法有副作用,而我点击了该类型的变量,它的toString的副作用会被应用吗(毫无疑问会把一切搞砸)?我想是这样。您可以通过编写某个类的toString方法来测试这一点,这样它可以将输出生成到一个文件(或者执行在调试器外部可以观察到的其他操作),然后让调试器显示该类型的变量。我想是这样的。您可以通过编写某个类的toString方法来测试这一点,使其生成文

在eclipse中调试java代码时,如果单击其中一个变量名,则会打印该对象。对象的toString()方法用于打印它。如果某个toString方法有副作用,而我点击了该类型的变量,它的toString的副作用会被应用吗(毫无疑问会把一切搞砸)?

我想是这样。您可以通过编写某个类的toString方法来测试这一点,这样它可以将输出生成到一个文件(或者执行在调试器外部可以观察到的其他操作),然后让调试器显示该类型的变量。

我想是这样的。您可以通过编写某个类的toString方法来测试这一点,使其生成文件输出(或执行调试器外部可以观察到的其他操作),然后让调试器显示该类型的变量。

我想您已经回答了自己的问题。无论何时调用
toString
,在调试或其他情况下,都会发生所有副作用。这正是为什么你应该避免toString的副作用。

我想你回答了你自己的问题。无论何时调用
toString
,在调试或其他情况下,都会发生所有副作用。这正是为什么在toString中应该避免副作用。

JVM不能选择是否“应用”副作用。如果使用toString()方法来获取字符串表示,则必须执行它,并且没有办法不执行副作用。毕竟,副作用可能会影响字符串表示的计算方式。

JVM不能选择是否“应用”副作用。如果使用toString()方法来获取字符串表示,则必须执行它,并且没有办法不执行副作用。毕竟,副作用可能会影响字符串表示的计算方式