Обертывание строк кода - как обрабатывать длинные строки

я сталкиваюсь с определенной строкой длиной 153 символа. Теперь, я склонен ломать вещи после 120 символов (конечно, это сильно зависит от того, где я нахожусь и местных соглашений. Но, честно говоря, везде, где я ломаю линию, это выглядит плохо. Поэтому я ищу некоторые идеи о том, что я должен сделать для этого.

вот строка:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = new HashMap<Class<? extends Persistent>, PersistentHelper>();

Я открыт для обеих идей о том, как/где сломать линию (и почему), а также способы сократить линию себя.

мы не магазин Java, и для такого рода вещей нет локальных соглашений, или, очевидно, я бы просто следовал им.

спасибо!

5 ответов


В общем, я ломаю строки до операторы и отступы последующих строк:

Map<long parameterization> longMap
    = new HashMap<ditto>();

String longString = "some long text"
                  + " some more long text";

Мне ведущий оператор ясно передает ,что " эта линия была продолжена от чего-то другого, она не стоит сама по себе.- У других людей, конечно, другие предпочтения.


вот как я это делаю, и Google Это мой путь.

  • перерыв до символ не-задание операторы.
  • перерыв после символ = и ,.

в вашем случае, поскольку вы используете 120 символов, вы можете сломать его после оператора присваивания, в результате чего

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper =
        new HashMap<Class<? extends Persistent>, PersistentHelper>();

в Java, и для этого конкретного случая я бы дал два вкладки (или восемь пробелов) после разрыва, в зависимости от того, используются ли вкладки или пробелы для отступов.

Это, конечно, личное предпочтение, и если ваш проект имеет свое собственное Соглашение для обертывания линий, то это то, что вы должны следовать, нравится вам это или нет.


IMHO это лучший способ написать свою строку:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper =
        new HashMap<Class<? extends Persistent>, PersistentHelper>();

таким образом, увеличенный отступ без фигурных скобок может помочь вам увидеть, что код был просто разбит, потому что строка была слишком длинной. И вместо 4 пробелов, 8 сделает его более ясным.


использует статические заводские методы Guava для карт и имеет длину всего 105 символов.

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = Maps.newHashMap();

Я думаю, что перемещение последнего оператора в начале следующей строки является хорошей практикой. Таким образом, вы сразу узнаете цель второй линии, даже если она не начинается с оператора. Я также рекомендую 2 отступа (2 вкладки) для ранее сломанной вкладки, чтобы отличаться от обычного отступа. Это сразу видно как продолжение предыдущей строки. Поэтому я предлагаю следующее:--2-->

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper 
            = new HashMap<Class<? extends Persistent>, PersistentHelper>();