在同一行自动格式化注释
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
当我尝试使用自动格式化时,评论乱七八糟。这是我使用自动格式化之前的代码:
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