Как правильно переносить слишком длинные строки в 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;