【问题标题】:Do toString side effects get applied in java debugging?在 java 调试中是否应用了 toString 副作用?
【发布时间】:2011-07-26 13:18:17
【问题描述】:

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

【问题讨论】:

    标签: java eclipse debugging tostring side-effects


    【解决方案1】:

    我想你回答了你自己的问题。任何时候你打电话给toString,在调试或其他情况下,所有的副作用都会发生。这正是您应该避免在 toString 中产生副作用的原因。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2018-03-25
          • 1970-01-01
          • 1970-01-01
          • 2012-10-26
          • 1970-01-01
          • 2015-06-03
          • 1970-01-01
          • 2017-10-01
          • 1970-01-01
          相关资源
          最近更新 更多