// правильно
if (true) {
// неправильно
if (true)
{
// правильно
while (true) {
// some code
// неправильно
while (true) { // some code
// правильно
for (true) {
// some code
}
// неправильно
while (true) { /* some code */ }
// неправильно
if (true) {
/* some code */ }
return () -> {
while (condition()) {
method();
}
};
return new MyClass() {
@Override public void method() {
if (condition()) {
try {
something();
} catch (ProblemException e) {
recover();
}
} else if (otherCondition()) {
somethingElse();
} else {
lastThing();
}
}
};
// Приемлемо
void doNothing() {}
// Также приемлемо
void doNothingElse() {
}
// Неприемлемо: нельзя использовать пустые блоки в многоблочном выражении
try {
doSomething();
} catch (Exception e) {}
MyLambda<String, Long, Object> lambda =
(String label, Long value, Object obj) -> {
...
};
Predicate<String> predicate = str ->
longExpressionInvolving(str);
private int x; // хорошо
private Color color; // и это тоже
private int x; // разрешено, но при редактировании в будущем
private Color color; // можно оставить без выравнивания
private enum Answer {
YES {
@Override public String toString() {
return "yes";
}
},
NO,
MAYBE
}
private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }
new int[] {
0, 1, 2, 3
}
new int[] {
0, 1,
2, 3
}
new int[]
{0, 1, 2, 3}
new int[] {
0,
1,
2,
3,
}
switch (input) {
case 1:
case 2:
prepareOneOrTwo();
// fall through
case 3:
handleOneTwoOrThree();
break;
default:
handleLargeNumber(input);
}
@Override
@Nullable
public String getNameIfPresent() { ... }
@Override public int hashCode() { ... }
@Partial @Mock DataLoader loader;
/*
* This is // And so /* Or you can
* okay. // is this. * even do this. */
*/
public protected private abstract default static final transient volatile synchronized native strictfp