在同一行自动格式化注释

Auto-formatting comments on the same line

当我尝试使用自动格式化时,评论乱七八糟。这是我使用自动格式化之前的代码:

if (x > 125 && x < 295 && y > 180 && y < 350) { //if mouse in first tower

        if (x > bar1.x1 && x < bar1.x2 && y > bar1.y1 && y < bar1.y2){  //if mouse in first bar
        }
        if (x > bar2.x1 && x < bar2.x2 && y > bar2.y1 && y < bar2.y2){ //if mouse in second bar
        }
        if (x > bar3.x1 && x < bar3.x2 && y > bar3.y1 && y < bar3.y2){ //if mouse in third bar
        }
        if (x > bar4.x1 && x < bar4.x2 && y > bar4.y1 && y < bar4.y2){ //if mouse in fourth bar
        }
        if (x > bar5.x1 && x < bar5.x2 && y > bar5.y1 && y < bar5.y2){ //if mouse in fifth bar
        }

    }

这是我使用自动格式化后的代码:

if (x > 125 && x < 295 && y > 180 && y < 350) { // if mouse in first
                                                    // tower

        if (x > bar1.x1 && x < bar1.x2 && y > bar1.y1 && y < bar1.y2) { // if
                                                                        // mouse
                                                                        // in
                                                                        // first
                                                                        // bar
        }
        if (x > bar2.x1 && x < bar2.x2 && y > bar2.y1 && y < bar2.y2) { // if
                                                                        // mouse
                                                                        // in
                                                                        // second
                                                                        // bar
        }
        if (x > bar3.x1 && x < bar3.x2 && y > bar3.y1 && y < bar3.y2) { // if
                                                                        // mouse
                                                                        // in
                                                                        // third
                                                                        // bar
        }
        if (x > bar4.x1 && x < bar4.x2 && y > bar4.y1 && y < bar4.y2) { // if
                                                                        // mouse
                                                                        // in
                                                                        // fourth
                                                                        // bar
        }
        if (x > bar5.x1 && x < bar5.x2 && y > bar5.y1 && y < bar5.y2) { // if
                                                                        // mouse
                                                                        // in
                                                                        // fifth
                                                                        // bar
        }

    }

我该如何解决这个问题?

你试过把评论放在他们自己的行上吗?

if (x > bar1.x1 && x < bar1.x2 && y > bar1.y1 && y < bar1.y2) {  
    //if mouse in first bar
    doFirstBarStuff();
}
if (x > bar2.x1 && x < bar2.x2 && y > bar2.y1 && y < bar2.y2) {
    //if mouse in second bar
    doSecondBarStuff();
}

考虑使用具有表达性名称的方法,而不是所有注释,例如:

boolean mouseInside(Bar bar, int x, int y) {
  return x > bar.x1 && x < bar.x2 && y > bar.y1 && y < bar.y2;
}

那么你的代码可以是这样的,不需要注释:

if (mosueInside(bar1, x, y))  {
}

if (mouseInside(bar2, x, y)) {        
}

实际上,如果我这样做,效果很好:

//if-mouse-in-first-bar