Jelenlegi hely

24.2. Behúzás

Megjegyzés: Ebben a jegyzetben a nyomtatás speciális tördelése miatt néhol eltértünk a következő szabályoktól.

2 vagy 4 szóköz, vagy a tabulátor karakter használata célszerű.

A sorok hossza ne legyen több 80 karakternél. Bizonyos esetekben érdemes 70 karakterben maximálni a sor hosszát.

Hosszú sorok tördelése

Ha egy kifejezés nem fér el egy sorban, a következők alapján tördeljünk:

  • Törjünk vessző (,) után
  • Törjünk egy operátor előtt
  • Részesítsük előnyben a magasabb szintű művelet előtt való törést
  • Igazítsuk az új sor kezdetét az előző sor ugyanolyan szintű kifejezéséhez
  • Ha az előzőek alapján zavaros lesz az eredmény, vagy így is túl hosszú a sor, akkor a szokásos behúzás kétszeresét (8 karakter) is alkalmazhatjuk

Nézzünk egy példát illusztrációként:

someMethod(longExpression1, longExpression2, longExpression3,
        longExpression4, longExpression5);
var = someMethod1(longExpression1,
                someMethod2(longExpression2,
                        longExpression3));

A következő két példa aritmetikai kifejezések töréséről szól. Az első példa elfogadható, a törés alkalmazkodik a logikai szerkezethez, de a második nem javasolt.

longName1 = longName2 * (longName3 + longName4 - longName5)
           + 4 * longname6;
longName1 = longName2 * (longName3 + longName4
                       - longName5) + 4 * longname6;

A következő két kód metódusdeklaráció bemutatására szolgál. Az első a szokásos esetet mutatja, de a másodiknál ez nem működne. Ezért ott a fix kétszeres behúzást alkalmazzuk:

someMethod(int anArg, Object anotherArg, String yetAnotherArg,
           Object andStillAnother) {
    ...
}
private static synchronized horkingLongMethodName(int anArg,
        Object anotherArg, String yetAnotherArg,
        Object andStillAnother) {
    ...
}

Az if utasítás törése esetén is a dupla behúzás javasolható, az egyszeres behúzás nehezebben felismerhetővé teszi a törzset. Az első tehát nem célszerű, helyette a második vagy harmadik javasolható:

if ((condition1 && condition2)
    || (condition3 && condition4)
    ||!(condition5 && condition6)) {
    doSomethingAboutIt();
}
if ((condition1 && condition2)
        || (condition3 && condition4)
        ||!(condition5 && condition6)) {
    doSomethingAboutIt();
}
if ((condition1 && condition2) || (condition3 && condition4)
        ||!(condition5 && condition6)) {
    doSomethingAboutIt();
}

Végül három jó példa a feltételes operátor alkalmazására:

alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
                                 : gamma;
alpha = (aLongBooleanExpression)
        ? beta
        : gamma;