Подтвердить что ты не робот

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

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

Здесь строка:

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

Вот как я это делаю, и Google делает это по-моему.

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

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

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

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

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

Ответ 4

Использует методы Guava static factory для Карт и длиной всего 105 символов.

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

Ответ 5

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

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