方法参数中的表达式如何解释?

时间:2019-04-19 09:51:32

标签: java

在一个项目中,我找到了以下代码:

create table if not exists grouprole (
    groupId uuid not null references pgroup(id) `where is_role = false`,
    roleId uuid not null references pgroup(id) `where is_role = true`,
    primary key (groupId, roleId)
);

有人能解释执行this.moveNode(node = this.getChildOf(node)); 之后将传递给moveNode的什么吗?

2 个答案:

答案 0 :(得分:3)

您的代码等同于

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

您应该像上面一样在两个单独的指令中对其进行重构,因为它使代码更易读和显而易见。 调试起来也更容易,因为您可以更轻松地选择将断点放置在所需的位置。

答案 1 :(得分:1)

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

执行将遵循以下顺序:

  1. this.getChildOf(node)被呼叫。
  2. 已完成对node的分配。
  3. this.moveNode()被呼叫。