在Java编码约定中,对于多行if条件,逻辑运算符放在哪里?

In Java coding convention, for multiline if condition, where to place the logical operators?

在多行 if 条件下,我想知道我们是否遵循放置逻辑运算符(&&||)的约定,或者它是否只是一个 偏好.

假设我们有下面这种 if 条件:

Bird bird = new ...; // Some bird species
if (!bird.canFly() && bird.hasWings() && bird.hasFeathers() && bird.canSwim() || ...) {
...
}

对于上面的长 if 条件,为了可读性,我们可能会做一个多行 if 条件。

对于逻辑运算符,我们把它们放在哪里?是在还是?

就我个人而言,我将它们放在左侧,这样我就知道在以下情况下使用了哪个运算符。

我这样做是对还是错?

official Java SE coding conventions:

4.2 Wrapping Lines:

When an expression will not fit on a single line, break it according to these general principles:

  • Break after a comma.
  • Break before an operator.

所以操作员转到左边的新行。