Как правильно переносить слишком длинные строки в Java
Если выражение не помещается на одной строке, разбейте его в соответствии с этими общими принципами:
• Разрыв после запятой.
• Перерыв перед оператором.
• Предпочитайте перерывы более высокого уровня перерывам более низкого уровня.
• Совместите новую строку с началом выражения на том же уровне, что и на предыдущем
линия.
• Если приведенные выше правила приводят к путанице в коде или к коду, который упирается в правое поле, просто сделайте отступ в 8 пробелов.
Вот несколько примеров прерывания вызовов методов:
function(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = function1(longExpression1,
function2(longExpression2,
longExpression3));
Ниже приведены два примера нарушения арифметического выражения. Первый является предпочтительным, так как
разрыв происходит за пределами выражения в скобках, которое находится на более высоком уровне.
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
Ниже приведены два примера объявлений метода отступа. Первый - это обычный случай. Второй сдвинул бы вторую и третью строки в крайнее правое положение, если бы он использовал обычный отступ, поэтому вместо этого он отступает только на 8 пробелов.
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
Обтекание строк для операторов if, как правило, должно использовать правило 8-и пробелов, поскольку обычные отступы (4 пробела) затрудняют просмотр тела условного выражения. Например:
//DON’T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
Вот три приемлемых способа форматирования тернарных выражений:
alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
: gamma;
alpha = (aLongBooleanExpression)
? beta
: gamma;