Обтекание строк кода - как обрабатывать длинные строки
Я столкнулся с определенной строкой длиной 153 символа. Теперь я, как правило, ломаю вещи после 120 символов (конечно, это сильно зависит от того, где я и локальные соглашения). Но, честно говоря, везде, где я нарушаю линию, это делает ее плохой. Поэтому я ищу некоторые идеи о том, что я должен сделать для этого.
Здесь строка:
private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = new HashMap<Class<? extends Persistent>, PersistentHelper>();
Я открыт для обоих представлений о том, как/где разбить строку (и почему), а также способы сокращения самой строки.
Мы не магазин Java, и для этого нет никаких локальных соглашений, или, очевидно, я просто буду следовать за ними.
Спасибо!
Ответы
Ответ 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>();