web-dev-qa-db-ja.com

コード行の折り返し-長い行の処理方法

153文字の特定の行に直面しています。今、私は120文字の後に物事を壊す傾向があります(もちろん、これは私がどこにいるのか、地元の慣習に大きく依存しています)。だから私はそれのために何をすべきかについていくつかのアイデアを探しています。

行は次のとおりです。

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

私は、どのように/どこで行を分割するか(およびその理由)、および行自体を短くする方法の両方のアイデアを受け入れています。

私たちはJavaショップではありません。また、この種のことに対するローカルの慣習はありません。

ありがとう!

33
corsiKa

一般的に、私はbefore演算子で行を分割し、後続の行をインデントします:

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

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

私にとって、主要なオペレーターは、「このラインは他の何かから継続されたものであり、単独では成り立たない」ことを明確に伝えています。もちろん、他の人は異なる好みを持っています。

40
Anon

これは私がそれを行う方法であり、 Google はそれを私のやり方で行います。

  • before非代入演算子のシンボルをブレークします。
  • =および,のシンボルをブレークafterします。

あなたの場合、120文字を使用しているので、代入演算子の後にそれを壊すことができます

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

Javaでは、この特定の場合、タブまたはスペースがインデントに使用されるかどうかに応じて、ブレーク後に2つのタブ(または8つのスペース)を指定します。

これはもちろん個人的な好みであり、プロジェクトに独自の行折り返しの規則がある場合は、それが好きかどうかに関係なく従うべきです。

12
Daniel

私見これはあなたの行を書くための最良の方法です:

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

このように、中括弧なしでインデントを増やすと、行が長すぎるためにコードが分割されたことがわかります。また、4つのスペースの代わりに、8でスペースを明確にします。

6
Colin Hebert

MapsにはGuavaの静的ファクトリーメソッドを使用し、長さはわずか105文字です。

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

最後の演算子を次の行の先頭に移動するのは良い習慣だと思います。そうすれば、2行目の目的がすぐにわかります。たとえそれが演算子で始まっていなくてもです。以前に壊れたタブには、通常のインデントとは異なる2つのインデントスペース(2タブ)をお勧めします。これは、前の行を継続することですぐにわかります。したがって、私はこれをお勧めします:

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