【问题标题】:How is expression in method parameter is interpreted? [duplicate]如何解释方法参数中的表达式? [复制]
【发布时间】:2019-09-09 14:41:37
【问题描述】:

在一个项目中,我发现了以下代码:

this.moveNode(node = this.getChildOf(node));

谁能解释在node = this.getChildOf(node) 执行后将传递给moveNode 的内容?

【问题讨论】:

  • 在调用node之前可能声明了一个字段/变量,在调用this.moveNode之前,他分配node,结果为this.getChildOfNode(node)

标签: java


【解决方案1】:

这将按预期传递this.getChildOf(node) 的返回。

执行将遵循以下顺序:

  1. this.getChildOf(node) 被调用。
  2. 分配给node
  3. this.moveNode() 被调用。

【讨论】:

    【解决方案2】:

    你的代码相当于

    node = this.getChildOf(node);
    this.moveNode(node);
    

    您应该像我上面所做的那样在两个单独的指令中重构它,因为它使代码更具可读性和明显性。 它也更容易调试,因为您可以更轻松地选择将断点放置在您想要的任何位置。

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多